Load required libraries

library("hdxstats")
library("dplyr")
library("ggplot2")
library("RColorBrewer")
library("tidyr")
library("pheatmap")
library("scales")
library("viridis")
library("patchwork")
library("Biostrings")
library("xfun")
library("tidyverse")
source("R/test_script_app2.R")

Parsing Raw Data

Parse input raw data and output QFeatures object instance given a CSV file path for different test cases.

# First test case
csv_filepath <- "/homes/sanjuan/R/x86_64-pc-linux-gnu-library/4.1/hdxstats/extdata/MBP.csv"

# CASE 1: Parse data, given input data file path + parameter file
hdx_data <- extract_hdx_data(csv_filepath, parameter_file = "vignettes/data/myparameters.hdxp")

# CASE 2: Parse data, given input data file path + list of parameters
data <- read_csv(csv_filepath)
myparameters <- make_parameter_file(data)
hdx_data <- extract_hdx_data(csv_filepath, parameters = myparameters)

# CASE 3: Parse data, given input data file path. Work out parameters for pre-processing using interactive mode
hdx_data <- extract_hdx_data(csv_filepath, parameter_file = "vignettes/data/myparameters.hdxp")

Data Analysis of Deuterium Uptake Kinetics

TEST 1:

Perform Data Analysis: Plain fitting

  • Deuterium-update fitting for all peptides
  • Plain fitting - not comparing against a reference state or condition
# INPUT
data_selection <- hdx_data[,1:24]
all_peptides <- rownames(data_selection)[[1]]
starting_parameters <- list(a = NULL, b = 0.001,  d = NULL, p = 1)
# OUTPUT
results <- analyse_kinetics(data = data_selection, 
                            method = "fit", 
                            peptide_selection = all_peptides, 
                            start = starting_parameters)
results$method

Visualise Output from Data Analysis

View fitting curves of Deu-uptake kinetics for all available conditions associated to selected peptides

graphics_kinetics <- visualise_hdx_data(results, type="kinetics") 
graphics_kinetics[[1]] | graphics_kinetics[[2]] | graphics_kinetics[[3]]

View forest plots showing the difference between uptake measurements between conditions, plus the dispersion between their respective fitting model parameters

graphics_forest <- visualise_hdx_data(results, type="forest")
graphics_forest[[1]] | graphics_forest[[2]] | graphics_forest[[3]]

Combine graphical outputs in a single canvas

graphics_forest[[1]] | graphics_kinetic[[1]]

Display numerical values as a table

graphics_forest[[1]]$data

Perform Data Analysis: Differential fitting

  • Deuterium-update fitting for data selection
  • Differential fitting - with respect to a single reference peptide
# INPUT 
data_selection <- hdx_data[,1:100]
all_peptides <- rownames(data_selection)[[1]] # get all peptides
starting_parameters <- list(a = NULL, b = 0.0001,  d = NULL, p = 1)

# OUTPUT
results <- analyse_kinetics(data = data_selection, 
                            method = "dfit", 
                            peptide_selection = all_peptides[37], 
                            start = starting_parameters)
graphics_kinetics <- visualise_hdx_data(results, type="kinetics")

View graphical output for reference peptide shown in LHS Top corner.

graphics_kinetics

TEST CASE 2

Single-domain antibody (sdAb) binding assays to HOIP.

csv_filepath <- "/home/sanjuan/R/x86_64-pc-linux-gnu-library/4.2/hdxstats/extdata/N64184_1a2_state.csv" 
data <- read_csv(csv_filepath)
Rows: 3600 Columns: 16
── Column specification ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: ","
chr  (3): Protein, Sequence, State
dbl (11): Start, End, MaxUptake, MHP, Exposure, Center, Center SD, Uptake, Uptake SD, RT, RT SD
lgl  (2): Modification, Fragment

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
make_parameter_file(data, save = "vignettes/data/N64184_1a2_state.hdxp")
[1] "INFO: I found these columns in your input CSV file"
 [1] "Protein"      "Start"        "End"          "Sequence"     "Modification" "Fragment"     "MaxUptake"    "MHP"          "State"       
[10] "Exposure"     "Center"       "Center SD"    "Uptake"       "Uptake SD"    "RT"           "RT SD"       
[1] "INFO: Specify the column name indicating the starting peptide residue numbers... OR, enter NA"
hdx_data <- extract_hdx_data(csv_filepath, parameter_file = "vignettes/data/N64184_1a2_state.hdxp")
[1] "INFO: You gave me a CSV file of your HDX-MSM data"
[1] "INFO: I will pre-process your data parse it using QFeatures ..."
[1] "INFO: You provided a 'parameter_file', I will extract parameters from this to format your output QFeatures data object."
[1] "INFO: You provided a list of 'parameters', I will extract parameters from this to format your output QFeatures data object."
[1] "INFO: Stripped your 'Exposure_Time' values from non-numeric characters."
[1] "INFO: Your original_time_units == 'm'. I will convert your 'Exposure_Time' values to seconds (s)."
[1] "INFO: Your 'Replicate' column appears to be NA. I will add this column with 1 values just to label your data."
[1] "INFO: Your 'Charge' column appears to be NA. I will add this column with 0 values just to label your data."
[1] "INFO: Reformatting your data to a wide format..."
[1] "INFO: Parsing your data as a qDF object class instance. Method: parseDeutData"
[1] "WARNING: Your output data is not normalised."
[1] "WARNING: Your output data was not saved. You can provide an output path with 'save = my_path'"
[1] "INFO: I pre-processed you input CSV data content and now it's available as a QFeatures instance"
# INPUT 
data_selection <- hdx_data[,1:33]
all_peptides <- rownames(data_selection)[[1]] # get all peptides
starting_parameters <- list(a = NULL, b = 0.01,  d = NULL)
formula = value ~ a * (1 - exp(-b*(timepoint))) + d

# OUTPUT
results <- analyse_kinetics(data = data_selection, 
                            method = "dfit", 
                            peptide_selection = all_peptides[3], 
                            start = starting_parameters,
                            formula = formula)
[1] "INFO: Performing differential fitting of Deuterium uptake kinetics. Method: 'hdxstats::differentialUptakeKinetics' "
[1] "INFO: You specified your own 'formula' for your fitting model."
Warning in fitting_method(object = data, feature = peptide_selection, start = starting_parameters,  :
  NAs introduced by coercion
graphics <- visualise_hdx_data(results, type="kinetics")
[1] "INFO: I found  11  models in your results data."
custom_colors <- scale_color_manual(values = colorRampPalette(brewer.pal(8, name = "Set2"))(11))
graphics + custom_colors
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.

Remove intercept Deu uptake values

Let’s select column data for the APO state and a bound state with a single domain antibody labelled as dAb25_1

data_selection <- hdx_data_nointercept[,c(1:3, 10:12)]
all_peptides <- rownames(data_selection)[[1]] # get all peptides
starting_parameters <- list(a = NULL)
formula = value ~ a * (1 - exp(-0.05*(timepoint)))

results <- analyse_kinetics(data = data_selection,
                            method = "fit",
                            peptide_selection = all_peptides, 
                            start = starting_parameters,
                            formula = formula)
[1] "INFO: Performing fitting of Deuterium uptake kinetics. Method: 'hdxstats::fitUptakeKinetics' "

Let’s have look at some of the data analysis output data

results$functional_analysis@results
DataFrame with 110 rows and 8 columns
                            Fstat.Fstat Fstat.numerator Fstat.denomenator     pvals       fdr ebayes.pvals ebayes.fdr
                                 <list>          <list>            <list> <numeric> <numeric>    <numeric>  <numeric>
GPGQECA_0                      0.505943       0.0236133         0.0466718  0.516181  0.652643     0.479007   0.612683
CAVCGWALPHNRM_0                0.819962       0.0111598         0.0136102  0.416403  0.558589     0.406959   0.545920
CAVCGWALPHNRMQAL_0              3.18841        0.130744         0.0410059  0.148709  0.320744     0.123017   0.300707
CAVCGWALPHNRMQALTSCE_0          1.51203        0.598316          0.395703  0.286210  0.499732     0.237829   0.441045
AVCGWALPHNRM_0                 0.138914      0.00401256         0.0288852  0.728272  0.801099     0.708845   0.779730
...                                 ...             ...               ...       ...       ...          ...        ...
ATERYLHVRPQPLAGEDPPAYQARL_0    0.882916       0.0634907         0.0719102  0.400605  0.557804    0.3563859   0.502596
ERYLHVRPQPLAGEDPPAYQ_0         0.841277       0.0671491         0.0798181  0.410930  0.558053    0.3658748   0.509446
ERYLHVRPQPLAGEDPPAYQARL_0       2.11026        0.172771          0.081872  0.219967  0.443454    0.1817334   0.386882
RYLHVRPQPLAGEDPPAYQARL_0        1.65969        0.120275         0.0724686  0.267115  0.481684    0.2263725   0.436859
LQKLTEEVPLGQSIPRRRK_0           4.48223        0.196504         0.0438406  0.101671  0.266280    0.0814249   0.246599
                            fitcomplete
                              <integer>
GPGQECA_0                             1
CAVCGWALPHNRM_0                       2
CAVCGWALPHNRMQAL_0                    3
CAVCGWALPHNRMQALTSCE_0                4
AVCGWALPHNRM_0                        5
...                                 ...
ATERYLHVRPQPLAGEDPPAYQARL_0         106
ERYLHVRPQPLAGEDPPAYQ_0              107
ERYLHVRPQPLAGEDPPAYQARL_0           108
RYLHVRPQPLAGEDPPAYQARL_0            109
LQKLTEEVPLGQSIPRRRK_0               110
which(results$functional_analysis@results$ebayes.fdr < 0.05)
          IQLRESLEPDA_0 RESLEPDAYALFHKKLTEGVL_0         YALFHKKLTEGVL_0       REQLEATCPQCHQTF_0           EATCPQCHQTF_0 
                     36                      42                      43                      52                      53 
      MYLQENGIDCPKCKF_0     YLQENGIDCPKCKFSYA_0      LQENGIDCPKCKFSYA_0 
                     65                      68                      70 
graphics <- visualise_hdx_data(results, type="kinetics")
[1] "INFO: I found  110  models in your results data."
graphics[[36]] + 
graphics[[42]] +
graphics[[43]] +
graphics[[65]] +
graphics[[68]] +
graphics[[70]] +
graphics[[52]] +
graphics[[53]] +
plot_layout(guides = 'collect')

#graphics <- visualise_hdx_data(results, data_selection=data_selection, type="manhatten", reference = NULL)# <<<<--- NEXT
n_cols <- length(as.vector(colnames(data_selection))$incoperation)

message <- paste("INFO: I found",n_cols,"columns in your data selection. I will split your data selection into two and take their difference.")
print(message)
[1] "INFO: I found 6 columns in your data selection. I will split your data selection into two and take their difference."
print(colnames(assay(data_selection)[,1:(n_cols/2)]))
[1] "X0rep1condapo"   "X30rep1condapo"  "X300rep1condapo"
print(colnames(assay(data_selection)[,(1+n_cols/2):n_cols]))
[1] "X0rep1conddAb25_1"   "X30rep1conddAb25_1"  "X300rep1conddAb25_1"
data_diff <- assay(data_selection)[,(1+n_cols/2):n_cols] - assay(data_selection)[,1:(n_cols/2)]

graphics <- list()
for (i in 1:(n_cols/2)){
    graphics[i] <- manhattanplot(params = results$functional_analysis,
                                 sequences = rownames(results$functional_analysis@results), 
                                 region = as.data.frame(data_selection@metadata)[, c("Start", "End")],
                                 difference = data_diff[,i],
                                 nrow = 1)
}
Scale for x is already present.
Adding another scale for x, which will replace the existing scale.
Scale for x is already present.
Adding another scale for x, which will replace the existing scale.
Scale for x is already present.
Adding another scale for x, which will replace the existing scale.
message <- paste("INFO: You have ", length(graphics), "Manhattan plots")
print(message)
[1] "INFO: You have  3 Manhattan plots"
graphics[[2]] + plot_layout(guides = 'collect')

graphics_manhatten <- visualise_hdx_data(results, data_selection= data_selection, type="manhatten")
[1] "INFO: I found 6 columns in your data selection. I will split your data selection into two and take their difference."
[1] "X0rep1condapo"   "X30rep1condapo"  "X300rep1condapo"
[1] "X0rep1conddAb25_1"   "X30rep1conddAb25_1"  "X300rep1conddAb25_1"
Scale for x is already present.
Adding another scale for x, which will replace the existing scale.
Scale for x is already present.
Adding another scale for x, which will replace the existing scale.
Scale for x is already present.
Adding another scale for x, which will replace the existing scale.
[1] "INFO: You have  3 Manhattan plots"
graphics_manhatten[[2]] / graphics_manhatten[[3]] + plot_layout(guides = 'collect')

#graphics <- visualise_hdx_data(results, type="epitope", level="peptide", fasta = "my_fasta_path") # Return an EpitopeMap

fpath <- system.file("extdata", "HOIP.txt", package = "hdxstats", mustWork = TRUE)
HOIPfasta <- readAAStringSet(filepath = fpath, "fasta")

scores <- results$functional_analysis@results$ebayes.fdr

out <- plotEpitopeMap(AAString = HOIPfasta[[1]],
                      peptideSeqs = unlist(lapply(strsplit(rownames(assay(hdx_data_nointercept)), split="_"), function(x) head(x,n=1))),
                      numlines = 2,
                      maxmismatch = 2,
                      by = 1, # NOTE: What's the role of this arg that's never called in function?
                      scores = 1 * (-log10(scores[unique(rownames(assay(hdx_data_nointercept)))])  > -log10(0.05)) + 0.0001,
                      name = "significant")
Warning in brewer.pal(n = 2, name = "Set2") :
  minimal value for n is 3, returning requested palette with 3 different levels
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
out[[1]]/(out[[2]]) + plot_layout(guides = 'collect') & theme(legend.position = "right")

#graphics <- visualise_hdx_data(results, type="epitope", level="peptide", fasta = "my_fasta_path") # Return an EpitopeMap

fasta <- system.file("extdata", "HOIP.txt", package = "hdxstats", mustWork = TRUE)
data_selection <- hdx_data_nointercept

#################################
fasta_data <- readAAStringSet(filepath = fasta, "fasta")
message <- paste("INFO: You input FASTA file contains", length(fasta_data), ". I will take the first entry by default.")
print(message)
[1] "INFO: You input FASTA file contains 16 . I will take the first entry by default."
scores <- results$functional_analysis@results$ebayes.fdr
peptide_charge_names <- rownames(results$functional_analysis@results)
peptide_sequences <- unlist(lapply(strsplit(peptide_charge_names, split="_"), function(x) head(x,n=1)))
# NOTE: What about the charged states? Do they get usually ignored?

graphics <- plotEpitopeMap(AAString = fasta_data[[1]],
                      peptideSeqs = peptide_sequences,
                      numlines = 2,
                      maxmismatch = 2,
                      by = 1, # NOTE: What's the role of this arg that's never called in function?
                      scores = 1 * (-log10(scores[unique(peptide_charge_names)])  > -log10(0.05)) + 0.0001,
                      name = "significant")
Warning in brewer.pal(n = 2, name = "Set2") :
  minimal value for n is 3, returning requested palette with 3 different levels
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
graphics[[1]]/(graphics[[2]]) + plot_layout(guides = 'collect') & theme(legend.position = "right")

fasta_filepath <- system.file("extdata", "HOIP.txt", package = "hdxstats", mustWork = TRUE)
graphics_epitope <- visualise_hdx_data(results, type="epitope", level="peptide", fasta = fasta_filepath)
[1] "INFO: You input FASTA file contains 16 . I will take the first entry by default."
Warning in brewer.pal(n = 2, name = "Set2") :
  minimal value for n is 3, returning requested palette with 3 different levels
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
[1] "INFO: You have  2 parts for your Epitope map"
graphics_epitope[[1]]/(graphics_epitope[[2]]) + 
plot_layout(guides = 'collect') & theme(legend.position = "right")

#graphics <- visualise_hdx_data(results, type="epitope", level="residue", fasta = "my_fasta_path") # Return heatmap

scores <- results$functional_analysis@results$ebayes.fdr
out2 <- plotEpitopeMapResidue(AAString = HOIPfasta[[1]],
                              peptideSeqs = unlist(lapply(strsplit(rownames(assay(hdx_data_nointercept)), split="_"), function(x) head(x,n=1))),
                              numlines = 2,
                              maxmismatch = 1,
                              by = 5,
                              scores = scores[unique(rownames(assay(hdx_data_nointercept)))],
                              name = "-log10 p value")
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
out2[[1]]/out2[[2]]  + plot_layout(guides = 'collect') & theme(legend.position = "right")

#graphics <- visualise_hdx_data(results, type="epitope", level="residue", fasta = "my_fasta_path") # Return heatmap

fasta <- system.file("extdata", "HOIP.txt", package = "hdxstats", mustWork = TRUE)
#######################################
fasta_data <- readAAStringSet(filepath = fasta, "fasta")
message <- paste("INFO: You input FASTA file contains", length(fasta_data), ". I will take the first entry by default.")
print(message)
[1] "INFO: You input FASTA file contains 16 . I will take the first entry by default."
peptide_charge_names <- rownames(results$functional_analysis@results)
peptide_sequences <- unlist(lapply(strsplit(peptide_charge_names, split="_"), function(x) head(x,n=1)))

scores <- results$functional_analysis@results$ebayes.fdr

graphics_epitope <- plotEpitopeMapResidue(AAString = fasta_data[[1]],
                                          peptideSeqs = peptide_sequences,
                                          numlines = 2,
                                          maxmismatch = 1,
                                          by = 5,
                                          scores = scores[unique(peptide_charge_names)],
                                          name = "-log10 p value")
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
graphics_epitope[[1]]/graphics_epitope[[2]]  + plot_layout(guides = 'collect') & theme(legend.position = "right")

fasta_filepath <- system.file("extdata", "HOIP.txt", package = "hdxstats", mustWork = TRUE)
graphics_epitope <- visualise_hdx_data(results, type="epitope", level="residue", fasta = fasta_filepath)
[1] "INFO: You input FASTA file contains 16 . I will take the first entry by default."
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
[1] "INFO: You have  2 parts for your Epitope map"
graphics_epitope[[1]]/(graphics_epitope[[2]]) + 
plot_layout(guides = 'collect') & theme(legend.position = "right")

Map data onto PDB

Load essential libraries

library("NGLVieweR")
Registered S3 method overwritten by 'htmlwidgets':
  method           from         
  print.htmlwidget tools:rstudio

Attaching package: ‘NGLVieweR’

The following object is masked from ‘package:xfun’:

    file_ext
library("tidyverse")
library("RColorBrewer")
library("scales")
library("comprehenr")
library("bio3d")

Attaching package: ‘bio3d’

The following object is masked from ‘package:SummarizedExperiment’:

    trim

The following object is masked from ‘package:GenomicRanges’:

    trim

The following object is masked from ‘package:Biostrings’:

    mask

The following object is masked from ‘package:IRanges’:

    trim

Map protection/deprotection heatmaps onto PDB

source("R/pdb-visualisation.R")
scores <- results$functional_analysis@results$ebayes.fdr

peptide_charge_names <- rownames(results$functional_analysis@results)
peptide_sequences <- unlist(lapply(strsplit(peptide_charge_names, split="_"), function(x) head(x,n=1)))

graphics_data <- ComputeAverageMap(AAString = fasta_data[[1]],
                            peptideSeqs = unique(peptide_sequences),
                            numlines = 2, maxmismatch = 1,
                            by = 10, scores = scores[unique(peptide_charge_names)],
                            name = "-log10 p value")
dataset <- graphics_data
pdb_filepath <- "vignettes/data/5edv_chainA_clean_renumbered.pdb"
mycolor_parameters <- hdx_to_pdb_colours(dataset, pdb_filepath)
[1] "Your HDX input dataset has 379 entries"
[1] "And excluding NA data you only have 379 entries"
[1] "However, your input PDB has only 286 residues in total"
[1] "Your scale limits are  0"    "Your scale limits are  1.37"
[1] "Your values will be coloured using Viridis"

graphics <- NGLVieweR(pdb_filepath) %>%
  stageParameters(backgroundColor = "white", zoomSpeed = 1) %>%
  addRepresentation("cartoon") %>%
  addRepresentation("cartoon", param = list(color=mycolor_parameters, backgroundColor="white")) #%>%
  #setSpin()
graphics
pdb_filepath <- "vignettes/data/5edv_chainA_clean_renumbered.pdb"
graphics_pdbview <- visualise_hdx_data(results, type="epitope", level="residue", fasta=fasta_filepath, pdb=pdb_filepath)

graphics_pdbview #%>% setSpin()

Protection/Deprotection heatmap

fasta <- system.file("extdata", "HOIP.txt", package = "hdxstats", mustWork = TRUE)
fasta_data <- readAAStringSet(filepath = fasta, "fasta")

scores <- results$functional_analysis@results$ebayes.fdr
peptide_charge_names <- rownames(results$functional_analysis@results)
peptide_sequences <- unlist(lapply(strsplit(peptide_charge_names, split="_"), function(x) head(x,n=1)))

n_cols <- length(as.vector(colnames(data_selection))$incoperation)

message <- paste("INFO: I found",n_cols,"columns in your data selection. I will split your data selection into two and take their difference.")
print(message)
[1] "INFO: I found 6 columns in your data selection. I will split your data selection into two and take their difference."
print(colnames(assay(data_selection)[,1:(n_cols/2)]))
[1] "X0rep1condapo"   "X30rep1condapo"  "X300rep1condapo"
print(colnames(assay(data_selection)[,(1+n_cols/2):n_cols]))
[1] "X0rep1conddAb25_1"   "X30rep1conddAb25_1"  "X300rep1conddAb25_1"
hdx_average <- ComputeAverageMap(AAString = fasta_data[[1]],
                                 peptideSeqs = unique(peptide_sequences),
                                 numlines = 2, 
                                 maxmismatch = 1,
                                 by = 10, 
                                 scores = scores[unique(peptide_charge_names)],
                                 name = "-log10 p value")
hdx_diff <- list()
graphics <- list()
qDF <- data_selection
for (i in 1:(n_cols/2)){
    hdx_diff[[i]] <- hdxdifference(object = data_selection,
                                    AAString = fasta_data[[1]],
                                    peptideSeqs = unique(peptide_sequences),
                                    numlines = 2,
                                    maxmismatch = 1,
                                    by = 10,
                                    scores = scores[unique(peptide_charge_names)],
                                    cols = c(i,(n_cols/2 + i)),
                                    name = "-log10 p value (signed)")
    
    graphics[[i]] <- hdxheatmap(averageMaps = list(hdx_average), diffMaps = list(hdx_diff[[i]]$diffMap)) 
}
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Warning in hdxdifference(object = data_selection, AAString = fasta_data[[1]],  :
  NaNs produced
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
message <- paste("INFO: You have ", length(graphics), "Protection/Deprotection heatmaps")
print(message)
[1] "INFO: You have  3 Protection/Deprotection heatmaps"
graphics[[3]][[1]] / graphics[[3]][[2]] + plot_layout(guides = 'collect') & theme(legend.position = "right")

fasta_filepath <- system.file("extdata", "HOIP.txt", package = "hdxstats", mustWork = TRUE)
qDF <- data_selection
graphics_protection <- visualise_hdx_data(results, 
                                          type="protection", 
                                          data_selection=data_selection,
                                          level="residue",
                                          fasta = fasta_filepath)
[1] "INFO: I found 6 columns in your data selection. I will split your data selection into two and take their difference."
[1] "X0rep1condapo"   "X30rep1condapo"  "X300rep1condapo"
[1] "X0rep1conddAb25_1"   "X30rep1conddAb25_1"  "X300rep1conddAb25_1"
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Warning in hdxdifference(object = data_selection, AAString = fasta_data[[1]],  :
  NaNs produced
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
[1] "INFO: You have  3 Protection/Deprotection heatmaps"
graphics <- graphics_protection
graphics[[3]][[1]] / graphics[[3]][[2]] +
    plot_layout(guides = 'collect') & theme(legend.position = "right")

pdb_filepath <- "vignettes/data/5edv_chainA_clean_renumbered.pdb"
graphics <- list()
for (i in 1:(n_cols/2)){
    graphics_data <- hdx_average + sign(hdx_diff[[i]]$diffMap)
    mycolor_parameters <- hdx_to_pdb_colours(graphics_data, pdb = pdb_filepath, cmap_name = "ProtDeprot")
    graphics[[i]] <- NGLVieweR(pdb_filepath) %>%
      stageParameters(backgroundColor = "white", zoomSpeed = 1) %>%
      addRepresentation("cartoon") %>%
      addRepresentation("cartoon", param = list(color=mycolor_parameters, backgroundColor="Prot"))
}
[1] "Your HDX input dataset has 379 entries"
[1] "And excluding NA data you only have 379 entries"
[1] "However, your input PDB has only 286 residues in total"
[1] "Your scale limits are  0"    "Your scale limits are  2.37"
[1] "Negative values will be coloured in Blue, and positive ones on Red"
[1] "Your HDX input dataset has 379 entries"
[1] "And excluding NA data you only have 379 entries"
[1] "However, your input PDB has only 286 residues in total"
[1] "Your scale limits are  0"    "Your scale limits are  2.37"
[1] "Negative values will be coloured in Blue, and positive ones on Red"
[1] "Your HDX input dataset has 379 entries"
[1] "And excluding NA data you only have 379 entries"
[1] "However, your input PDB has only 286 residues in total"
[1] "Your scale limits are  -0.39" "Your scale limits are  2.37" 
[1] "Negative values will be coloured in Blue, and positive ones on Red"
graphics[[3]]
pdb_filepath <- "vignettes/data/5edv_chainA_clean_renumbered.pdb"
graphics_pdbview <- visualise_hdx_data(results, 
                                       data_selection=data_selection,
                                       type="protection", 
                                       level="residue", 
                                       fasta=fasta_filepath, 
                                       pdb=pdb_filepath)
[1] "INFO: I found 6 columns in your data selection. I will split your data selection into two and take their difference."
[1] "X0rep1condapo"   "X30rep1condapo"  "X300rep1condapo"
[1] "X0rep1conddAb25_1"   "X30rep1conddAb25_1"  "X300rep1conddAb25_1"
Warning in hdxdifference(object = data_selection, AAString = fasta_data[[1]],  :
  NaNs produced
[1] "Your HDX input dataset has 379 entries"
[1] "And excluding NA data you only have 379 entries"
[1] "However, your input PDB has only 286 residues in total"
[1] "Your scale limits are  0"    "Your scale limits are  2.37"
[1] "Negative values will be coloured in Blue, and positive ones on Red"
[1] "Your HDX input dataset has 379 entries"
[1] "And excluding NA data you only have 379 entries"
[1] "However, your input PDB has only 286 residues in total"
[1] "Your scale limits are  0"    "Your scale limits are  2.37"
[1] "Negative values will be coloured in Blue, and positive ones on Red"
[1] "Your HDX input dataset has 379 entries"
[1] "And excluding NA data you only have 379 entries"
[1] "However, your input PDB has only 286 residues in total"
[1] "Your scale limits are  -0.39" "Your scale limits are  2.37" 
[1] "Negative values will be coloured in Blue, and positive ones on Red"
graphics_pdbview[[3]] #%>% setSpin()

TEST CASE 3

Pre-processed the raw data manually to add Replicate column

#csv_filepath <- "inst/extdata/Project_2_SecA_Cluster_Data.csv" # Original raw data
#data <- read_csv(csv_filepath)
#data$Replicate <- unlist(lapply(strsplit(data$File, split="_"), function(x) tail(x, n=1)))
#write_csv(data, file = "inst/extdata/Project_2_SecA_Cluster_Data_edited.csv")

Curate raw data according to parameter file and save as QFeatures object

hdx_data <- extract_hdx_data(csv_filepath, parameter_file = "vignettes/data/Project_2_SecA_Cluster_Data.hdxp")
[1] "INFO: You gave me a CSV file of your HDX-MSM data"
[1] "INFO: I will pre-process your data parse it using QFeatures ..."
[1] "INFO: You provided a 'parameter_file', I will extract parameters from this to format your output QFeatures data object."
[1] "INFO: You provided a list of 'parameters', I will extract parameters from this to format your output QFeatures data object."
[1] "INFO: Stripped your 'Exposure_Time' values from non-numeric characters."
[1] "INFO: Your original_time_units == 'm'. I will convert your 'Exposure_Time' values to seconds (s)."
[1] "INFO: Reformatting your data to a wide format..."
[1] "INFO: Parsing your data as a qDF object class instance. Method: parseDeutData"
[1] "WARNING: Your output data is not normalised."
[1] "WARNING: Your output data was not saved. You can provide an output path with 'save = my_path'"
[1] "INFO: I pre-processed you input CSV data content and now it's available as a QFeatures instance"

Post-process the data, remove undeuterated values an normalise by exchangable amides

hdx_data_undeuterated <- mynormalisehdx(hdx_data, method = "undeuterated")
sequences <- unique(rownames(hdx_data_undeuterated)[[1]])
hdx_data_normalised <- mynormalisehdx(hdx_data_undeuterated, sequences = sequences, method = "pc")

Select data for conditions (states) of interest: secA (APO state) and secA_ADP (bound state)

data_selection <- hdx_data_normalised[,c(1:17, 63:79)]
pheatmap(t(assay(data_selection)),
         cluster_rows = FALSE, 
         cluster_cols = FALSE,
         color = brewer.pal(n = 9, name = "BuPu"),
         main = "secA heatmap", 
         fontsize = 14,
         legend_breaks = c(0, 1, 2, 3, 4, 5, 6, max(assay(data_selection))),
         legend_labels = c("0", "1", "2", "3", "4", "5", "6", "Incorporation"))

all_peptides <- rownames(data_selection)[[1]] # get all peptides
starting_parameters <- list(a = NULL, b = NULL,  d = NULL, p = 1)

results <- analyse_kinetics(data = data_selection,
                            method = "fit",
                            peptide_selection = all_peptides, 
                            start = starting_parameters)
[1] "INFO: Performing fitting of Deuterium uptake kinetics. Method: 'hdxstats::fitUptakeKinetics' "
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in max(data$value) :
  no non-missing arguments to max; returning -Inf
Warning in min(data$value) :
  no non-missing arguments to min; returning Inf
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower,  :
  lmdif: info = 0. Improper input parameters.

Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "model fit failed, likely exessive missing values"
Warning in differentialUptakeKinetics(object = object, feature = x, start = start,  :
  NAs introduced by coercion
[1] "too few data points to fit model"
Warning in pf(q = Fstat, df1 = d1, df2 = d2, lower.tail = FALSE) :
  NaNs produced
Warning in pf(q = modFstat, df1 = d1, df2 = d2, lower.tail = FALSE) :
  NaNs produced
results$functional_analysis@results
graphics_kinetics <- visualise_hdx_data(results, type = "kinetics")
[1] "INFO: I found  207  models in your results data."
graphics_forest <- visualise_hdx_data(results, type="forest")
[1] "INFO: I found  207  models in your results data."
Error in t.test.default(x = DATA[[1L]], y = DATA[[2L]], ...) : 
  not enough 'x' observations
graphics_kinetics[[4]] + graphics_kinetics[[24]] + graphics_kinetics[[25]]

graphics_manhattan <- visualise_hdx_data(results, data_selection= data_selection, type="manhattan")
[1] "INFO: I found 34 columns in your data selection. I will split your data selection into two and take their difference."
 [1] "X0rep291018_SecA_REF_5condSecA"            "X0rep291018_SecA_REF_4condSecA"           
 [3] "X0rep291018_SecA_REF_3condSecA"            "X0rep291018_SecA_REF_2condSecA"           
 [5] "X0rep291018_SecA_REF_1condSecA"            "X15rep011118_SecA_15sec_1condSecA"        
 [7] "X15rep011118_SecA_15sec_2condSecA"         "X15rep011118_SecA_15sec_3condSecA"        
 [9] "X60rep011118_SecA_1min_1condSecA"          "X60rep011118_SecA_1min_2condSecA"         
[11] "X60rep011118_SecA_1min_3condSecA"          "X300rep011118_SecA_5min_1condSecA"        
[13] "X300rep011118_SecA_5min_2condSecA"         "X300rep011118_SecA_5min_3condSecA"        
[15] "X1800.00012rep011118_SecA_30min_1condSecA" "X1800.00012rep011118_SecA_30min_2condSecA"
[17] "X1800.00012rep011118_SecA_30min_3condSecA"
 [1] "X0rep291018_SecA_REF_5condSecA_ADP"                "X0rep291018_SecA_REF_4condSecA_ADP"               
 [3] "X0rep291018_SecA_REF_3condSecA_ADP"                "X0rep291018_SecA_REF_2condSecA_ADP"               
 [5] "X0rep291018_SecA_REF_1condSecA_ADP"                "X15rep311018_SecA_ADP_15sec_4condSecA_ADP"        
 [7] "X15rep311018_SecA_ADP_15sec_3condSecA_ADP"         "X15rep301018_SecA_ADP_15sec_2condSecA_ADP"        
 [9] "X60rep311018_SecA_ADP_1min_3condSecA_ADP"          "X60rep311018_SecA_ADP_1min_2condSecA_ADP"         
[11] "X60rep311018_SecA_ADP_1min_1condSecA_ADP"          "X300rep311018_SecA_ADP_5min_3condSecA_ADP"        
[13] "X300rep311018_SecA_ADP_5min_2condSecA_ADP"         "X300rep311018_SecA_ADP_5min_1condSecA_ADP"        
[15] "X1800.00012rep311018_SecA_ADP_30min_3condSecA_ADP" "X1800.00012rep311018_SecA_ADP_30min_2condSecA_ADP"
[17] "X1800.00012rep311018_SecA_ADP_30min_1condSecA_ADP"
Error in `$<-.data.frame`(`*tmp*`, "region", value = list(Start = c(4,  : 
  replacement has 385 rows, data has 207
# Find out how many unique peptides and charge states exist
length(rownames(assay(hdx_data)))
# Extract all column values for a given peptide and charge state ( all states, all replicates, all timepoints)
peptide_charge <- "VIMDF_1" # "SSQYESAL_1"
Deu_min_global <- apply(assay(hdx_data), 1, function(x) min(x, na.rm = TRUE))[[peptide_charge]]
peptide_charge_data <- as.data.frame(assay(hdx_data))[peptide_charge, ]
peptide_charge_data <- longFormat(peptide_charge_data)
peptide_charge_data$condition <- as.factor(str_match(peptide_charge_data$colname, "cond\\s*(.*)")[, 2]) # Modify this for data analysis functions since they expect a numeric for replicates
peptide_charge_conditions <- unique(peptide_charge_data$condition)
# For a fixed confition
state <- "SecAYEG_AMPPNP"
ldf <- peptide_charge_data %>% subset(condition == state)
ldf$timepoint <- as.numeric(str_match(ldf$colname, "X\\s*(.*?)\\s*rep")[, 2])
ldf$replicates <- as.factor(str_match(ldf$colname, "rep\\s*(.*)\\s*cond")[, 2])
# Identify if number of replicates for 0 timepoint match for subsequent timepoints and report if not the case
#sum(ldf$timepoint == 0)
#length(unique(ldf$timepoint))
ldf$replicates <- unlist(lapply(strsplit(as.vector(as.factor(str_match(ldf$colname, "rep\\s*(.*)\\s*cond")[, 2])), split="_"), function(x) tail(x, n=1)))

# Subtract Deu uptake value at 0 timepoint
replicate_number <- 3
single_replicate_data <- ldf %>% subset(replicates == replicate_number)
x <- single_replicate_data %>% subset(timepoint == 0) # NOTE: Sometimes there will be more than one 0 timepoint
message <- paste("INFO: You have", length(x$value),"Deu uptake values for the zero timepoint.")
print(message)

if (all(is.na(x$value))){
    message <- "INFO: All Deu uptake values for the zero timepoint are NA. I will take the minimum across all conditions."
    print(message)
    single_replicate_data$value <- single_replicate_data$value - Deu_min_global
    print(single_replicate_data)
}else{
    message <- "INFO: At least one Deu uptake values for the zero timepoint is NA. I will take the minimum of all zero timepoints"
    print(message)
    Deu_min <- min(x$value, na.rm = TRUE)
    print("BEFORE")
    print(single_replicate_data)
    single_replicate_data$value <- single_replicate_data$value - Deu_min
    print("AFTER")
    print(single_replicate_data)
}
message <-paste("INFO: You have", length(rownames(assay(hdx_data))), "peptide-charge paired values")
print(message)
ldf_new <- rbind()
for (peptide_charge in rownames(assay(hdx_data))){
  peptide_charge_data <- as.data.frame(assay(hdx_data))[peptide_charge, ]
  peptide_charge_data <- longFormat(peptide_charge_data)
  peptide_charge_data$condition <- as.factor(str_match(peptide_charge_data$colname, "cond\\s*(.*)")[, 2])
  
  Deu_min_global <- apply(assay(hdx_data), 1, function(x) min(x, na.rm = TRUE))[[peptide_charge]]
  
  peptide_charge_conditions <- unique(peptide_charge_data$condition)
  message <- paste("INFO: For ", peptide_charge, ", you have", length(peptide_charge_conditions), "conditions")
  print(message)
  
  #ldf_new <- rbind()
  for (state in peptide_charge_conditions){
    ldf <- peptide_charge_data %>% subset(condition == state)
    ldf$timepoint <- as.numeric(str_match(ldf$colname, "X\\s*(.*?)\\s*rep")[, 2])
    ldf$replicates <- as.factor(str_match(ldf$colname, "rep\\s*(.*)\\s*cond")[, 2])
    
    ldf$replicates <- unlist(lapply(strsplit(as.vector(as.factor(str_match(ldf$colname, "rep\\s*(.*)\\s*cond")[, 2])), split="_"), function(x) tail(x, n=1)))
    # Subtract Deu uptake value at 0 timepoint
    message <- paste("INFO: You have", length(unique(ldf$replicates)), "replicates, for", state)
    print(message)
    
    for (n_replicate in unique(ldf$replicates)){
      single_replicate_data <- ldf %>% subset(replicates == n_replicate)
      x <- single_replicate_data %>% subset(timepoint == 0)
      
      if (all(is.na(x$value))){
        message <- "INFO: All Deu uptake values for the zero timepoint are NA. I will take the minimum across all conditions."
        print(message)
        single_replicate_data$value <- single_replicate_data$value - Deu_min_global
        #print(single_replicate_data)
        ldf_new <- rbind(ldf_new, single_replicate_data)
        }else{
            message <- "INFO: At least one Deu uptake values for the zero timepoint is NA. I will take the minimum of all zero timepoints"
            print(message)
            Deu_min <- min(x$value, na.rm = TRUE)
            single_replicate_data$value <- single_replicate_data$value - Deu_min
            #print(single_replicate_data)
            ldf_new <- rbind(ldf_new, single_replicate_data)
        }
    }
  }
}

x <- DataFrame(ldf_new)
x_wide <- pivot_wider(data.frame(x), values_from = value, id_cols = rowname, names_from = colname)
x_wide_df <- DataFrame(x_wide)
x_wide_df$rownames <- x_wide$rowname
qFeat <- readQFeatures(data.frame(x_wide_df), ecol = 1:ncol(assay(hdx_data)), name = names(hdx_data), fnames = "rownames")
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyBMb2FkIHJlcXVpcmVkIGxpYnJhcmllcwoKYGBge3J9CmxpYnJhcnkoImhkeHN0YXRzIikKbGlicmFyeSgiZHBseXIiKQpsaWJyYXJ5KCJnZ3Bsb3QyIikKbGlicmFyeSgiUkNvbG9yQnJld2VyIikKbGlicmFyeSgidGlkeXIiKQpsaWJyYXJ5KCJwaGVhdG1hcCIpCmxpYnJhcnkoInNjYWxlcyIpCmxpYnJhcnkoInZpcmlkaXMiKQpsaWJyYXJ5KCJwYXRjaHdvcmsiKQpsaWJyYXJ5KCJCaW9zdHJpbmdzIikKbGlicmFyeSgieGZ1biIpCmxpYnJhcnkoInRpZHl2ZXJzZSIpCmBgYAoKYGBge3J9CnNvdXJjZSgiUi90ZXN0X3NjcmlwdF9hcHAyLlIiKQpgYGAKCgojIFBhcnNpbmcgUmF3IERhdGEKClBhcnNlIGlucHV0IHJhdyBkYXRhIGFuZCBvdXRwdXQgYFFGZWF0dXJlc2Agb2JqZWN0IGluc3RhbmNlIGdpdmVuIGEgQ1NWIGZpbGUgcGF0aCBmb3IgZGlmZmVyZW50IHRlc3QgY2FzZXMuCgpgYGB7cn0KIyBGaXJzdCB0ZXN0IGNhc2UKY3N2X2ZpbGVwYXRoIDwtICIvaG9tZXMvc2FuanVhbi9SL3g4Nl82NC1wYy1saW51eC1nbnUtbGlicmFyeS80LjEvaGR4c3RhdHMvZXh0ZGF0YS9NQlAuY3N2IgoKIyBDQVNFIDE6IFBhcnNlIGRhdGEsIGdpdmVuIGlucHV0IGRhdGEgZmlsZSBwYXRoICsgcGFyYW1ldGVyIGZpbGUKaGR4X2RhdGEgPC0gZXh0cmFjdF9oZHhfZGF0YShjc3ZfZmlsZXBhdGgsIHBhcmFtZXRlcl9maWxlID0gInZpZ25ldHRlcy9kYXRhL215cGFyYW1ldGVycy5oZHhwIikKCiMgQ0FTRSAyOiBQYXJzZSBkYXRhLCBnaXZlbiBpbnB1dCBkYXRhIGZpbGUgcGF0aCArIGxpc3Qgb2YgcGFyYW1ldGVycwpkYXRhIDwtIHJlYWRfY3N2KGNzdl9maWxlcGF0aCkKbXlwYXJhbWV0ZXJzIDwtIG1ha2VfcGFyYW1ldGVyX2ZpbGUoZGF0YSkKaGR4X2RhdGEgPC0gZXh0cmFjdF9oZHhfZGF0YShjc3ZfZmlsZXBhdGgsIHBhcmFtZXRlcnMgPSBteXBhcmFtZXRlcnMpCgojIENBU0UgMzogUGFyc2UgZGF0YSwgZ2l2ZW4gaW5wdXQgZGF0YSBmaWxlIHBhdGguIFdvcmsgb3V0IHBhcmFtZXRlcnMgZm9yIHByZS1wcm9jZXNzaW5nIHVzaW5nIGludGVyYWN0aXZlIG1vZGUKCmBgYAoKCmBgYHtyfQpoZHhfZGF0YSA8LSBleHRyYWN0X2hkeF9kYXRhKGNzdl9maWxlcGF0aCwgcGFyYW1ldGVyX2ZpbGUgPSAidmlnbmV0dGVzL2RhdGEvbXlwYXJhbWV0ZXJzLmhkeHAiKQpgYGAKCgojIERhdGEgQW5hbHlzaXMgb2YgRGV1dGVyaXVtIFVwdGFrZSBLaW5ldGljcwoKIyMgVEVTVCAxOgoKIyMjIFBlcmZvcm0gRGF0YSBBbmFseXNpczogUGxhaW4gZml0dGluZwoKKiBEZXV0ZXJpdW0tdXBkYXRlIGZpdHRpbmcgZm9yIGFsbCBwZXB0aWRlcwoqIFBsYWluIGZpdHRpbmcgLSBub3QgY29tcGFyaW5nIGFnYWluc3QgYSByZWZlcmVuY2Ugc3RhdGUgb3IgY29uZGl0aW9uCgpgYGB7cn0KIyBJTlBVVApkYXRhX3NlbGVjdGlvbiA8LSBoZHhfZGF0YVssMToyNF0KYWxsX3BlcHRpZGVzIDwtIHJvd25hbWVzKGRhdGFfc2VsZWN0aW9uKVtbMV1dCnN0YXJ0aW5nX3BhcmFtZXRlcnMgPC0gbGlzdChhID0gTlVMTCwgYiA9IDAuMDAxLCAgZCA9IE5VTEwsIHAgPSAxKQojIE9VVFBVVApyZXN1bHRzIDwtIGFuYWx5c2Vfa2luZXRpY3MoZGF0YSA9IGRhdGFfc2VsZWN0aW9uLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJmaXQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcHRpZGVfc2VsZWN0aW9uID0gYWxsX3BlcHRpZGVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gc3RhcnRpbmdfcGFyYW1ldGVycykKYGBgCgpgYGB7cn0KcmVzdWx0cyRtZXRob2QKYGBgCgojIyMgVmlzdWFsaXNlIE91dHB1dCBmcm9tIERhdGEgQW5hbHlzaXMKClZpZXcgZml0dGluZyBjdXJ2ZXMgb2YgRGV1LXVwdGFrZSBraW5ldGljcyBmb3IgYWxsIGF2YWlsYWJsZSBjb25kaXRpb25zIGFzc29jaWF0ZWQgdG8gc2VsZWN0ZWQgcGVwdGlkZXMKCmBgYHtyLCBmaWcud2lkdGg9IDIyLCBmaWcuaGVpZ2h0ID0gN30KZ3JhcGhpY3Nfa2luZXRpY3MgPC0gdmlzdWFsaXNlX2hkeF9kYXRhKHJlc3VsdHMsIHR5cGU9ImtpbmV0aWNzIikgCmdyYXBoaWNzX2tpbmV0aWNzW1sxXV0gfCBncmFwaGljc19raW5ldGljc1tbMl1dIHwgZ3JhcGhpY3Nfa2luZXRpY3NbWzNdXQpgYGAKClZpZXcgZm9yZXN0IHBsb3RzIHNob3dpbmcgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB1cHRha2UgbWVhc3VyZW1lbnRzIGJldHdlZW4gY29uZGl0aW9ucywgcGx1cyB0aGUgZGlzcGVyc2lvbiBiZXR3ZWVuIHRoZWlyIHJlc3BlY3RpdmUgZml0dGluZyBtb2RlbCBwYXJhbWV0ZXJzCgpgYGB7ciwgZmlnLndpZHRoPSAyMiwgZmlnLmhlaWdodCA9IDEwfQpncmFwaGljc19mb3Jlc3QgPC0gdmlzdWFsaXNlX2hkeF9kYXRhKHJlc3VsdHMsIHR5cGU9ImZvcmVzdCIpCmdyYXBoaWNzX2ZvcmVzdFtbMV1dIHwgZ3JhcGhpY3NfZm9yZXN0W1syXV0gfCBncmFwaGljc19mb3Jlc3RbWzNdXQpgYGAKCkNvbWJpbmUgZ3JhcGhpY2FsIG91dHB1dHMgaW4gYSBzaW5nbGUgY2FudmFzCgpgYGB7ciwgZmlnLndpZHRoPSAyMiwgZmlnLmhlaWdodCA9IDEwfQpncmFwaGljc19mb3Jlc3RbWzFdXSB8IGdyYXBoaWNzX2tpbmV0aWNbWzFdXQpgYGAKRGlzcGxheSBudW1lcmljYWwgdmFsdWVzIGFzIGEgdGFibGUgCgpgYGB7cn0KZ3JhcGhpY3NfZm9yZXN0W1sxXV0kZGF0YQpgYGAKCiMjIyBQZXJmb3JtIERhdGEgQW5hbHlzaXM6IERpZmZlcmVudGlhbCBmaXR0aW5nCgoqIERldXRlcml1bS11cGRhdGUgZml0dGluZyBmb3IgZGF0YSBzZWxlY3Rpb24gCiogRGlmZmVyZW50aWFsIGZpdHRpbmcgLSB3aXRoIHJlc3BlY3QgdG8gYSAqc2luZ2xlIHJlZmVyZW5jZSogcGVwdGlkZQoKYGBge3J9CiMgSU5QVVQgCmRhdGFfc2VsZWN0aW9uIDwtIGhkeF9kYXRhWywxOjEwMF0KYWxsX3BlcHRpZGVzIDwtIHJvd25hbWVzKGRhdGFfc2VsZWN0aW9uKVtbMV1dICMgZ2V0IGFsbCBwZXB0aWRlcwpzdGFydGluZ19wYXJhbWV0ZXJzIDwtIGxpc3QoYSA9IE5VTEwsIGIgPSAwLjAwMDEsICBkID0gTlVMTCwgcCA9IDEpCgojIE9VVFBVVApyZXN1bHRzIDwtIGFuYWx5c2Vfa2luZXRpY3MoZGF0YSA9IGRhdGFfc2VsZWN0aW9uLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJkZml0IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXB0aWRlX3NlbGVjdGlvbiA9IGFsbF9wZXB0aWRlc1szN10sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBzdGFydGluZ19wYXJhbWV0ZXJzKQoKYGBgCgpgYGB7cn0KZ3JhcGhpY3Nfa2luZXRpY3MgPC0gdmlzdWFsaXNlX2hkeF9kYXRhKHJlc3VsdHMsIHR5cGU9ImtpbmV0aWNzIikKYGBgCgpWaWV3IGdyYXBoaWNhbCBvdXRwdXQgZm9yIHJlZmVyZW5jZSBwZXB0aWRlIHNob3duIGluIExIUyBUb3AgY29ybmVyLiAKCmBgYHtyfQpncmFwaGljc19raW5ldGljcwpgYGAKCiMjIFRFU1QgQ0FTRSAyCgpTaW5nbGUtZG9tYWluIGFudGlib2R5IChzZEFiKSBiaW5kaW5nIGFzc2F5cyB0byBIT0lQLgoKCmBgYHtyfQpjc3ZfZmlsZXBhdGggPC0gIi9ob21lL3Nhbmp1YW4vUi94ODZfNjQtcGMtbGludXgtZ251LWxpYnJhcnkvNC4yL2hkeHN0YXRzL2V4dGRhdGEvTjY0MTg0XzFhMl9zdGF0ZS5jc3YiIApgYGAKCgpgYGB7cn0KZGF0YSA8LSByZWFkX2Nzdihjc3ZfZmlsZXBhdGgpCm1ha2VfcGFyYW1ldGVyX2ZpbGUoZGF0YSwgc2F2ZSA9ICJ2aWduZXR0ZXMvZGF0YS9ONjQxODRfMWEyX3N0YXRlLmhkeHAiKQpgYGAKCgpgYGB7cn0KaGR4X2RhdGEgPC0gZXh0cmFjdF9oZHhfZGF0YShjc3ZfZmlsZXBhdGgsIHBhcmFtZXRlcl9maWxlID0gInZpZ25ldHRlcy9kYXRhL042NDE4NF8xYTJfc3RhdGUuaGR4cCIpCmBgYAoKCmBgYHtyfQojIElOUFVUIApkYXRhX3NlbGVjdGlvbiA8LSBoZHhfZGF0YVssMTozM10KYWxsX3BlcHRpZGVzIDwtIHJvd25hbWVzKGRhdGFfc2VsZWN0aW9uKVtbMV1dICMgZ2V0IGFsbCBwZXB0aWRlcwpzdGFydGluZ19wYXJhbWV0ZXJzIDwtIGxpc3QoYSA9IE5VTEwsIGIgPSAwLjAxLCAgZCA9IE5VTEwpCmZvcm11bGEgPSB2YWx1ZSB+IGEgKiAoMSAtIGV4cCgtYioodGltZXBvaW50KSkpICsgZAoKIyBPVVRQVVQKcmVzdWx0cyA8LSBhbmFseXNlX2tpbmV0aWNzKGRhdGEgPSBkYXRhX3NlbGVjdGlvbiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSAiZGZpdCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVwdGlkZV9zZWxlY3Rpb24gPSBhbGxfcGVwdGlkZXNbM10sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBzdGFydGluZ19wYXJhbWV0ZXJzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybXVsYSA9IGZvcm11bGEpCmBgYAoKCmBgYHtyfQpncmFwaGljcyA8LSB2aXN1YWxpc2VfaGR4X2RhdGEocmVzdWx0cywgdHlwZT0ia2luZXRpY3MiKQoKY3VzdG9tX2NvbG9ycyA8LSBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gY29sb3JSYW1wUGFsZXR0ZShicmV3ZXIucGFsKDgsIG5hbWUgPSAiU2V0MiIpKSgxMSkpCmdyYXBoaWNzICsgY3VzdG9tX2NvbG9ycwpgYGAKClJlbW92ZSBpbnRlcmNlcHQgRGV1IHVwdGFrZSB2YWx1ZXMgCgpgYGB7ciBlbnYsIG1lc3NhZ2UgPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFLCBlY2hvID0gRkFMU0V9CmhkeF9kYXRhX25vaW50ZXJjZXB0IDwtIG15bm9ybWFsaXNlaGR4KGhkeF9kYXRhLCBtZXRob2QgPSAiaW50ZXJjZXB0IikKYGBgCgpMZXQncyBzZWxlY3QgY29sdW1uIGRhdGEgZm9yIHRoZSBBUE8gc3RhdGUgYW5kIGEgYm91bmQgc3RhdGUgd2l0aCBhIHNpbmdsZSBkb21haW4gYW50aWJvZHkgbGFiZWxsZWQgYXMgYGRBYjI1XzFgIApgYGB7cn0KZGF0YV9zZWxlY3Rpb24gPC0gaGR4X2RhdGFfbm9pbnRlcmNlcHRbLGMoMTozLCAxMDoxMildCmFsbF9wZXB0aWRlcyA8LSByb3duYW1lcyhkYXRhX3NlbGVjdGlvbilbWzFdXSAjIGdldCBhbGwgcGVwdGlkZXMKc3RhcnRpbmdfcGFyYW1ldGVycyA8LSBsaXN0KGEgPSBOVUxMKQpmb3JtdWxhID0gdmFsdWUgfiBhICogKDEgLSBleHAoLTAuMDUqKHRpbWVwb2ludCkpKQoKcmVzdWx0cyA8LSBhbmFseXNlX2tpbmV0aWNzKGRhdGEgPSBkYXRhX3NlbGVjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJmaXQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVwdGlkZV9zZWxlY3Rpb24gPSBhbGxfcGVwdGlkZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBzdGFydGluZ19wYXJhbWV0ZXJzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybXVsYSA9IGZvcm11bGEpCmBgYApMZXQncyBoYXZlICBsb29rIGF0IHNvbWUgb2YgdGhlIGRhdGEgYW5hbHlzaXMgb3V0cHV0IGRhdGEKCmBgYHtyfQpyZXN1bHRzJGZ1bmN0aW9uYWxfYW5hbHlzaXNAcmVzdWx0cwpgYGAKCmBgYHtyfQp3aGljaChyZXN1bHRzJGZ1bmN0aW9uYWxfYW5hbHlzaXNAcmVzdWx0cyRlYmF5ZXMuZmRyIDwgMC4wNSkKYGBgCgpgYGB7cn0KZ3JhcGhpY3MgPC0gdmlzdWFsaXNlX2hkeF9kYXRhKHJlc3VsdHMsIHR5cGU9ImtpbmV0aWNzIikKYGBgCgpgYGB7ciwgZmlnLndpZHRoPSAyMiwgZmlnLmhlaWdodCA9IDE1fQpncmFwaGljc1tbMzZdXSArIApncmFwaGljc1tbNDJdXSArCmdyYXBoaWNzW1s0M11dICsKZ3JhcGhpY3NbWzY1XV0gKwpncmFwaGljc1tbNjhdXSArCmdyYXBoaWNzW1s3MF1dICsKZ3JhcGhpY3NbWzUyXV0gKwpncmFwaGljc1tbNTNdXSArCnBsb3RfbGF5b3V0KGd1aWRlcyA9ICdjb2xsZWN0JykKYGBgCgpgYGB7ciwgZmlnLndpZHRoPSAxMiwgZmlnLmhlaWdodCA9IDR9CiNncmFwaGljcyA8LSB2aXN1YWxpc2VfaGR4X2RhdGEocmVzdWx0cywgZGF0YV9zZWxlY3Rpb249ZGF0YV9zZWxlY3Rpb24sIHR5cGU9Im1hbmhhdHRlbiIsIHJlZmVyZW5jZSA9IE5VTEwpIyA8PDw8LS0tIE5FWFQKbl9jb2xzIDwtIGxlbmd0aChhcy52ZWN0b3IoY29sbmFtZXMoZGF0YV9zZWxlY3Rpb24pKSRpbmNvcGVyYXRpb24pCgptZXNzYWdlIDwtIHBhc3RlKCJJTkZPOiBJIGZvdW5kIixuX2NvbHMsImNvbHVtbnMgaW4geW91ciBkYXRhIHNlbGVjdGlvbi4gSSB3aWxsIHNwbGl0IHlvdXIgZGF0YSBzZWxlY3Rpb24gaW50byB0d28gYW5kIHRha2UgdGhlaXIgZGlmZmVyZW5jZS4iKQpwcmludChtZXNzYWdlKQpwcmludChjb2xuYW1lcyhhc3NheShkYXRhX3NlbGVjdGlvbilbLDE6KG5fY29scy8yKV0pKQpwcmludChjb2xuYW1lcyhhc3NheShkYXRhX3NlbGVjdGlvbilbLCgxK25fY29scy8yKTpuX2NvbHNdKSkKCmRhdGFfZGlmZiA8LSBhc3NheShkYXRhX3NlbGVjdGlvbilbLCgxK25fY29scy8yKTpuX2NvbHNdIC0gYXNzYXkoZGF0YV9zZWxlY3Rpb24pWywxOihuX2NvbHMvMildCgpncmFwaGljcyA8LSBsaXN0KCkKZm9yIChpIGluIDE6KG5fY29scy8yKSl7CiAgICBncmFwaGljc1tpXSA8LSBtYW5oYXR0YW5wbG90KHBhcmFtcyA9IHJlc3VsdHMkZnVuY3Rpb25hbF9hbmFseXNpcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VxdWVuY2VzID0gcm93bmFtZXMocmVzdWx0cyRmdW5jdGlvbmFsX2FuYWx5c2lzQHJlc3VsdHMpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uID0gYXMuZGF0YS5mcmFtZShkYXRhX3NlbGVjdGlvbkBtZXRhZGF0YSlbLCBjKCJTdGFydCIsICJFbmQiKV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZmZlcmVuY2UgPSBkYXRhX2RpZmZbLGldLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBucm93ID0gMSkKfQoKbWVzc2FnZSA8LSBwYXN0ZSgiSU5GTzogWW91IGhhdmUgIiwgbGVuZ3RoKGdyYXBoaWNzKSwgIk1hbmhhdHRhbiBwbG90cyIpCnByaW50KG1lc3NhZ2UpCgpncmFwaGljc1tbMl1dICsgcGxvdF9sYXlvdXQoZ3VpZGVzID0gJ2NvbGxlY3QnKQpgYGAKYGBge3IsIGZpZy53aWR0aD0gMTIsIGZpZy5oZWlnaHQgPSA0fQpncmFwaGljc19tYW5oYXR0ZW4gPC0gdmlzdWFsaXNlX2hkeF9kYXRhKHJlc3VsdHMsIGRhdGFfc2VsZWN0aW9uPSBkYXRhX3NlbGVjdGlvbiwgdHlwZT0ibWFuaGF0dGVuIikKZ3JhcGhpY3NfbWFuaGF0dGVuW1syXV0gLyBncmFwaGljc19tYW5oYXR0ZW5bWzNdXSArIHBsb3RfbGF5b3V0KGd1aWRlcyA9ICdjb2xsZWN0JykKYGBgCgoKYGBge3IsIGZpZy53aWR0aD0gMTIsIGZpZy5oZWlnaHQgPSA0fQojZ3JhcGhpY3MgPC0gdmlzdWFsaXNlX2hkeF9kYXRhKHJlc3VsdHMsIHR5cGU9ImVwaXRvcGUiLCBsZXZlbD0icGVwdGlkZSIsIGZhc3RhID0gIm15X2Zhc3RhX3BhdGgiKSAjIFJldHVybiBhbiBFcGl0b3BlTWFwCgpmcGF0aCA8LSBzeXN0ZW0uZmlsZSgiZXh0ZGF0YSIsICJIT0lQLnR4dCIsIHBhY2thZ2UgPSAiaGR4c3RhdHMiLCBtdXN0V29yayA9IFRSVUUpCkhPSVBmYXN0YSA8LSByZWFkQUFTdHJpbmdTZXQoZmlsZXBhdGggPSBmcGF0aCwgImZhc3RhIikKCnNjb3JlcyA8LSByZXN1bHRzJGZ1bmN0aW9uYWxfYW5hbHlzaXNAcmVzdWx0cyRlYmF5ZXMuZmRyCgpvdXQgPC0gcGxvdEVwaXRvcGVNYXAoQUFTdHJpbmcgPSBIT0lQZmFzdGFbWzFdXSwKICAgICAgICAgICAgICAgICAgICAgIHBlcHRpZGVTZXFzID0gdW5saXN0KGxhcHBseShzdHJzcGxpdChyb3duYW1lcyhhc3NheShoZHhfZGF0YV9ub2ludGVyY2VwdCkpLCBzcGxpdD0iXyIpLCBmdW5jdGlvbih4KSBoZWFkKHgsbj0xKSkpLAogICAgICAgICAgICAgICAgICAgICAgbnVtbGluZXMgPSAyLAogICAgICAgICAgICAgICAgICAgICAgbWF4bWlzbWF0Y2ggPSAyLAogICAgICAgICAgICAgICAgICAgICAgYnkgPSAxLCAjIE5PVEU6IFdoYXQncyB0aGUgcm9sZSBvZiB0aGlzIGFyZyB0aGF0J3MgbmV2ZXIgY2FsbGVkIGluIGZ1bmN0aW9uPwogICAgICAgICAgICAgICAgICAgICAgc2NvcmVzID0gMSAqICgtbG9nMTAoc2NvcmVzW3VuaXF1ZShyb3duYW1lcyhhc3NheShoZHhfZGF0YV9ub2ludGVyY2VwdCkpKV0pICA+IC1sb2cxMCgwLjA1KSkgKyAwLjAwMDEsCiAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gInNpZ25pZmljYW50IikKCm91dFtbMV1dLyhvdXRbWzJdXSkgKyBwbG90X2xheW91dChndWlkZXMgPSAnY29sbGVjdCcpICYgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IikKYGBgCgpgYGB7ciwgZmlnLndpZHRoPSAxMiwgZmlnLmhlaWdodCA9IDR9CiNncmFwaGljcyA8LSB2aXN1YWxpc2VfaGR4X2RhdGEocmVzdWx0cywgdHlwZT0iZXBpdG9wZSIsIGxldmVsPSJwZXB0aWRlIiwgZmFzdGEgPSAibXlfZmFzdGFfcGF0aCIpICMgUmV0dXJuIGFuIEVwaXRvcGVNYXAKCmZhc3RhIDwtIHN5c3RlbS5maWxlKCJleHRkYXRhIiwgIkhPSVAudHh0IiwgcGFja2FnZSA9ICJoZHhzdGF0cyIsIG11c3RXb3JrID0gVFJVRSkKZGF0YV9zZWxlY3Rpb24gPC0gaGR4X2RhdGFfbm9pbnRlcmNlcHQKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpmYXN0YV9kYXRhIDwtIHJlYWRBQVN0cmluZ1NldChmaWxlcGF0aCA9IGZhc3RhLCAiZmFzdGEiKQptZXNzYWdlIDwtIHBhc3RlKCJJTkZPOiBZb3UgaW5wdXQgRkFTVEEgZmlsZSBjb250YWlucyIsIGxlbmd0aChmYXN0YV9kYXRhKSwgIi4gSSB3aWxsIHRha2UgdGhlIGZpcnN0IGVudHJ5IGJ5IGRlZmF1bHQuIikKcHJpbnQobWVzc2FnZSkKCnNjb3JlcyA8LSByZXN1bHRzJGZ1bmN0aW9uYWxfYW5hbHlzaXNAcmVzdWx0cyRlYmF5ZXMuZmRyCnBlcHRpZGVfY2hhcmdlX25hbWVzIDwtIHJvd25hbWVzKHJlc3VsdHMkZnVuY3Rpb25hbF9hbmFseXNpc0ByZXN1bHRzKQpwZXB0aWRlX3NlcXVlbmNlcyA8LSB1bmxpc3QobGFwcGx5KHN0cnNwbGl0KHBlcHRpZGVfY2hhcmdlX25hbWVzLCBzcGxpdD0iXyIpLCBmdW5jdGlvbih4KSBoZWFkKHgsbj0xKSkpCiMgTk9URTogV2hhdCBhYm91dCB0aGUgY2hhcmdlZCBzdGF0ZXM/IERvIHRoZXkgZ2V0IHVzdWFsbHkgaWdub3JlZD8KCmdyYXBoaWNzIDwtIHBsb3RFcGl0b3BlTWFwKEFBU3RyaW5nID0gZmFzdGFfZGF0YVtbMV1dLAogICAgICAgICAgICAgICAgICAgICAgcGVwdGlkZVNlcXMgPSBwZXB0aWRlX3NlcXVlbmNlcywKICAgICAgICAgICAgICAgICAgICAgIG51bWxpbmVzID0gMiwKICAgICAgICAgICAgICAgICAgICAgIG1heG1pc21hdGNoID0gMiwKICAgICAgICAgICAgICAgICAgICAgIGJ5ID0gMSwgIyBOT1RFOiBXaGF0J3MgdGhlIHJvbGUgb2YgdGhpcyBhcmcgdGhhdCdzIG5ldmVyIGNhbGxlZCBpbiBmdW5jdGlvbj8KICAgICAgICAgICAgICAgICAgICAgIHNjb3JlcyA9IDEgKiAoLWxvZzEwKHNjb3Jlc1t1bmlxdWUocGVwdGlkZV9jaGFyZ2VfbmFtZXMpXSkgID4gLWxvZzEwKDAuMDUpKSArIDAuMDAwMSwKICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAic2lnbmlmaWNhbnQiKQoKZ3JhcGhpY3NbWzFdXS8oZ3JhcGhpY3NbWzJdXSkgKyBwbG90X2xheW91dChndWlkZXMgPSAnY29sbGVjdCcpICYgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IikKYGBgCmBgYHtyLCBmaWcud2lkdGg9IDEyLCBmaWcuaGVpZ2h0ID0gNH0KZmFzdGFfZmlsZXBhdGggPC0gc3lzdGVtLmZpbGUoImV4dGRhdGEiLCAiSE9JUC50eHQiLCBwYWNrYWdlID0gImhkeHN0YXRzIiwgbXVzdFdvcmsgPSBUUlVFKQpncmFwaGljc19lcGl0b3BlIDwtIHZpc3VhbGlzZV9oZHhfZGF0YShyZXN1bHRzLCB0eXBlPSJlcGl0b3BlIiwgbGV2ZWw9InBlcHRpZGUiLCBmYXN0YSA9IGZhc3RhX2ZpbGVwYXRoKQoKZ3JhcGhpY3NfZXBpdG9wZVtbMV1dLyhncmFwaGljc19lcGl0b3BlW1syXV0pICsgCnBsb3RfbGF5b3V0KGd1aWRlcyA9ICdjb2xsZWN0JykgJiB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiKQpgYGAKCgoKYGBge3IsIGZpZy53aWR0aD0gMTIsIGZpZy5oZWlnaHQgPSA0fQojZ3JhcGhpY3MgPC0gdmlzdWFsaXNlX2hkeF9kYXRhKHJlc3VsdHMsIHR5cGU9ImVwaXRvcGUiLCBsZXZlbD0icmVzaWR1ZSIsIGZhc3RhID0gIm15X2Zhc3RhX3BhdGgiKSAjIFJldHVybiBoZWF0bWFwCgpzY29yZXMgPC0gcmVzdWx0cyRmdW5jdGlvbmFsX2FuYWx5c2lzQHJlc3VsdHMkZWJheWVzLmZkcgpvdXQyIDwtIHBsb3RFcGl0b3BlTWFwUmVzaWR1ZShBQVN0cmluZyA9IEhPSVBmYXN0YVtbMV1dLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXB0aWRlU2VxcyA9IHVubGlzdChsYXBwbHkoc3Ryc3BsaXQocm93bmFtZXMoYXNzYXkoaGR4X2RhdGFfbm9pbnRlcmNlcHQpKSwgc3BsaXQ9Il8iKSwgZnVuY3Rpb24oeCkgaGVhZCh4LG49MSkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtbGluZXMgPSAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhtaXNtYXRjaCA9IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5ID0gNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcmVzID0gc2NvcmVzW3VuaXF1ZShyb3duYW1lcyhhc3NheShoZHhfZGF0YV9ub2ludGVyY2VwdCkpKV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAiLWxvZzEwIHAgdmFsdWUiKQoKb3V0MltbMV1dL291dDJbWzJdXSAgKyBwbG90X2xheW91dChndWlkZXMgPSAnY29sbGVjdCcpICYgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IikKYGBgCgpgYGB7ciwgZmlnLndpZHRoPSAxMiwgZmlnLmhlaWdodCA9IDR9CiNncmFwaGljcyA8LSB2aXN1YWxpc2VfaGR4X2RhdGEocmVzdWx0cywgdHlwZT0iZXBpdG9wZSIsIGxldmVsPSJyZXNpZHVlIiwgZmFzdGEgPSAibXlfZmFzdGFfcGF0aCIpICMgUmV0dXJuIGhlYXRtYXAKCmZhc3RhIDwtIHN5c3RlbS5maWxlKCJleHRkYXRhIiwgIkhPSVAudHh0IiwgcGFja2FnZSA9ICJoZHhzdGF0cyIsIG11c3RXb3JrID0gVFJVRSkKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmZhc3RhX2RhdGEgPC0gcmVhZEFBU3RyaW5nU2V0KGZpbGVwYXRoID0gZmFzdGEsICJmYXN0YSIpCm1lc3NhZ2UgPC0gcGFzdGUoIklORk86IFlvdSBpbnB1dCBGQVNUQSBmaWxlIGNvbnRhaW5zIiwgbGVuZ3RoKGZhc3RhX2RhdGEpLCAiLiBJIHdpbGwgdGFrZSB0aGUgZmlyc3QgZW50cnkgYnkgZGVmYXVsdC4iKQpwcmludChtZXNzYWdlKQoKcGVwdGlkZV9jaGFyZ2VfbmFtZXMgPC0gcm93bmFtZXMocmVzdWx0cyRmdW5jdGlvbmFsX2FuYWx5c2lzQHJlc3VsdHMpCnBlcHRpZGVfc2VxdWVuY2VzIDwtIHVubGlzdChsYXBwbHkoc3Ryc3BsaXQocGVwdGlkZV9jaGFyZ2VfbmFtZXMsIHNwbGl0PSJfIiksIGZ1bmN0aW9uKHgpIGhlYWQoeCxuPTEpKSkKCnNjb3JlcyA8LSByZXN1bHRzJGZ1bmN0aW9uYWxfYW5hbHlzaXNAcmVzdWx0cyRlYmF5ZXMuZmRyCgpncmFwaGljc19lcGl0b3BlIDwtIHBsb3RFcGl0b3BlTWFwUmVzaWR1ZShBQVN0cmluZyA9IGZhc3RhX2RhdGFbWzFdXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVwdGlkZVNlcXMgPSBwZXB0aWRlX3NlcXVlbmNlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtbGluZXMgPSAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhtaXNtYXRjaCA9IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5ID0gNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcmVzID0gc2NvcmVzW3VuaXF1ZShwZXB0aWRlX2NoYXJnZV9uYW1lcyldLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gIi1sb2cxMCBwIHZhbHVlIikKCmdyYXBoaWNzX2VwaXRvcGVbWzFdXS9ncmFwaGljc19lcGl0b3BlW1syXV0gICsgcGxvdF9sYXlvdXQoZ3VpZGVzID0gJ2NvbGxlY3QnKSAmIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIpCmBgYAoKYGBge3IsIGZpZy53aWR0aD0gMTIsIGZpZy5oZWlnaHQgPSA0fQpmYXN0YV9maWxlcGF0aCA8LSBzeXN0ZW0uZmlsZSgiZXh0ZGF0YSIsICJIT0lQLnR4dCIsIHBhY2thZ2UgPSAiaGR4c3RhdHMiLCBtdXN0V29yayA9IFRSVUUpCmdyYXBoaWNzX2VwaXRvcGUgPC0gdmlzdWFsaXNlX2hkeF9kYXRhKHJlc3VsdHMsIHR5cGU9ImVwaXRvcGUiLCBsZXZlbD0icmVzaWR1ZSIsIGZhc3RhID0gZmFzdGFfZmlsZXBhdGgpCgpncmFwaGljc19lcGl0b3BlW1sxXV0vKGdyYXBoaWNzX2VwaXRvcGVbWzJdXSkgKyAKcGxvdF9sYXlvdXQoZ3VpZGVzID0gJ2NvbGxlY3QnKSAmIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIpCmBgYApNYXAgZGF0YSBvbnRvIFBEQgoKTG9hZCBlc3NlbnRpYWwgbGlicmFyaWVzCgpgYGB7cix9CmxpYnJhcnkoIk5HTFZpZXdlUiIpCmxpYnJhcnkoInRpZHl2ZXJzZSIpCmxpYnJhcnkoIlJDb2xvckJyZXdlciIpCmxpYnJhcnkoInNjYWxlcyIpCmxpYnJhcnkoImNvbXByZWhlbnIiKQpsaWJyYXJ5KCJiaW8zZCIpCmBgYAoKTWFwIHByb3RlY3Rpb24vZGVwcm90ZWN0aW9uIGhlYXRtYXBzIG9udG8gUERCCgpgYGB7cn0Kc291cmNlKCJSL3BkYi12aXN1YWxpc2F0aW9uLlIiKQpgYGAKCgpgYGB7cn0Kc2NvcmVzIDwtIHJlc3VsdHMkZnVuY3Rpb25hbF9hbmFseXNpc0ByZXN1bHRzJGViYXllcy5mZHIKCnBlcHRpZGVfY2hhcmdlX25hbWVzIDwtIHJvd25hbWVzKHJlc3VsdHMkZnVuY3Rpb25hbF9hbmFseXNpc0ByZXN1bHRzKQpwZXB0aWRlX3NlcXVlbmNlcyA8LSB1bmxpc3QobGFwcGx5KHN0cnNwbGl0KHBlcHRpZGVfY2hhcmdlX25hbWVzLCBzcGxpdD0iXyIpLCBmdW5jdGlvbih4KSBoZWFkKHgsbj0xKSkpCgpncmFwaGljc19kYXRhIDwtIENvbXB1dGVBdmVyYWdlTWFwKEFBU3RyaW5nID0gZmFzdGFfZGF0YVtbMV1dLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVwdGlkZVNlcXMgPSB1bmlxdWUocGVwdGlkZV9zZXF1ZW5jZXMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtbGluZXMgPSAyLCBtYXhtaXNtYXRjaCA9IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBieSA9IDEwLCBzY29yZXMgPSBzY29yZXNbdW5pcXVlKHBlcHRpZGVfY2hhcmdlX25hbWVzKV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gIi1sb2cxMCBwIHZhbHVlIikKYGBgCgoKYGBge3J9CmRhdGFzZXQgPC0gZ3JhcGhpY3NfZGF0YQpwZGJfZmlsZXBhdGggPC0gInZpZ25ldHRlcy9kYXRhLzVlZHZfY2hhaW5BX2NsZWFuX3JlbnVtYmVyZWQucGRiIgpteWNvbG9yX3BhcmFtZXRlcnMgPC0gaGR4X3RvX3BkYl9jb2xvdXJzKGRhdGFzZXQsIHBkYl9maWxlcGF0aCkKYGBgCgoKYGBge3J9CgpncmFwaGljcyA8LSBOR0xWaWV3ZVIocGRiX2ZpbGVwYXRoKSAlPiUKICBzdGFnZVBhcmFtZXRlcnMoYmFja2dyb3VuZENvbG9yID0gIndoaXRlIiwgem9vbVNwZWVkID0gMSkgJT4lCiAgYWRkUmVwcmVzZW50YXRpb24oImNhcnRvb24iKSAlPiUKICBhZGRSZXByZXNlbnRhdGlvbigiY2FydG9vbiIsIHBhcmFtID0gbGlzdChjb2xvcj1teWNvbG9yX3BhcmFtZXRlcnMsIGJhY2tncm91bmRDb2xvcj0id2hpdGUiKSkgIyU+JQogICNzZXRTcGluKCkKYGBgCgoKYGBge3J9CmdyYXBoaWNzCmBgYAoKCgpgYGB7cn0KcGRiX2ZpbGVwYXRoIDwtICJ2aWduZXR0ZXMvZGF0YS81ZWR2X2NoYWluQV9jbGVhbl9yZW51bWJlcmVkLnBkYiIKZ3JhcGhpY3NfcGRidmlldyA8LSB2aXN1YWxpc2VfaGR4X2RhdGEocmVzdWx0cywgdHlwZT0iZXBpdG9wZSIsIGxldmVsPSJyZXNpZHVlIiwgZmFzdGE9ZmFzdGFfZmlsZXBhdGgsIHBkYj1wZGJfZmlsZXBhdGgpCgpncmFwaGljc19wZGJ2aWV3ICMlPiUgc2V0U3BpbigpCmBgYAoKClByb3RlY3Rpb24vRGVwcm90ZWN0aW9uIGhlYXRtYXAgCgpgYGB7cn0KZmFzdGEgPC0gc3lzdGVtLmZpbGUoImV4dGRhdGEiLCAiSE9JUC50eHQiLCBwYWNrYWdlID0gImhkeHN0YXRzIiwgbXVzdFdvcmsgPSBUUlVFKQpmYXN0YV9kYXRhIDwtIHJlYWRBQVN0cmluZ1NldChmaWxlcGF0aCA9IGZhc3RhLCAiZmFzdGEiKQoKc2NvcmVzIDwtIHJlc3VsdHMkZnVuY3Rpb25hbF9hbmFseXNpc0ByZXN1bHRzJGViYXllcy5mZHIKcGVwdGlkZV9jaGFyZ2VfbmFtZXMgPC0gcm93bmFtZXMocmVzdWx0cyRmdW5jdGlvbmFsX2FuYWx5c2lzQHJlc3VsdHMpCnBlcHRpZGVfc2VxdWVuY2VzIDwtIHVubGlzdChsYXBwbHkoc3Ryc3BsaXQocGVwdGlkZV9jaGFyZ2VfbmFtZXMsIHNwbGl0PSJfIiksIGZ1bmN0aW9uKHgpIGhlYWQoeCxuPTEpKSkKCm5fY29scyA8LSBsZW5ndGgoYXMudmVjdG9yKGNvbG5hbWVzKGRhdGFfc2VsZWN0aW9uKSkkaW5jb3BlcmF0aW9uKQoKbWVzc2FnZSA8LSBwYXN0ZSgiSU5GTzogSSBmb3VuZCIsbl9jb2xzLCJjb2x1bW5zIGluIHlvdXIgZGF0YSBzZWxlY3Rpb24uIEkgd2lsbCBzcGxpdCB5b3VyIGRhdGEgc2VsZWN0aW9uIGludG8gdHdvIGFuZCB0YWtlIHRoZWlyIGRpZmZlcmVuY2UuIikKcHJpbnQobWVzc2FnZSkKcHJpbnQoY29sbmFtZXMoYXNzYXkoZGF0YV9zZWxlY3Rpb24pWywxOihuX2NvbHMvMildKSkKcHJpbnQoY29sbmFtZXMoYXNzYXkoZGF0YV9zZWxlY3Rpb24pWywoMStuX2NvbHMvMik6bl9jb2xzXSkpCgpoZHhfYXZlcmFnZSA8LSBDb21wdXRlQXZlcmFnZU1hcChBQVN0cmluZyA9IGZhc3RhX2RhdGFbWzFdXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVwdGlkZVNlcXMgPSB1bmlxdWUocGVwdGlkZV9zZXF1ZW5jZXMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1saW5lcyA9IDIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhtaXNtYXRjaCA9IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5ID0gMTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29yZXMgPSBzY29yZXNbdW5pcXVlKHBlcHRpZGVfY2hhcmdlX25hbWVzKV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAiLWxvZzEwIHAgdmFsdWUiKQpoZHhfZGlmZiA8LSBsaXN0KCkKZ3JhcGhpY3MgPC0gbGlzdCgpCnFERiA8LSBkYXRhX3NlbGVjdGlvbgpmb3IgKGkgaW4gMToobl9jb2xzLzIpKXsKICAgIGhkeF9kaWZmW1tpXV0gPC0gaGR4ZGlmZmVyZW5jZShvYmplY3QgPSBkYXRhX3NlbGVjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUFTdHJpbmcgPSBmYXN0YV9kYXRhW1sxXV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcHRpZGVTZXFzID0gdW5pcXVlKHBlcHRpZGVfc2VxdWVuY2VzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtbGluZXMgPSAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhtaXNtYXRjaCA9IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5ID0gMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3JlcyA9IHNjb3Jlc1t1bmlxdWUocGVwdGlkZV9jaGFyZ2VfbmFtZXMpXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29scyA9IGMoaSwobl9jb2xzLzIgKyBpKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAiLWxvZzEwIHAgdmFsdWUgKHNpZ25lZCkiKQogICAgCiAgICBncmFwaGljc1tbaV1dIDwtIGhkeGhlYXRtYXAoYXZlcmFnZU1hcHMgPSBsaXN0KGhkeF9hdmVyYWdlKSwgZGlmZk1hcHMgPSBsaXN0KGhkeF9kaWZmW1tpXV0kZGlmZk1hcCkpIAp9CgptZXNzYWdlIDwtIHBhc3RlKCJJTkZPOiBZb3UgaGF2ZSAiLCBsZW5ndGgoZ3JhcGhpY3MpLCAiUHJvdGVjdGlvbi9EZXByb3RlY3Rpb24gaGVhdG1hcHMiKQpwcmludChtZXNzYWdlKQpgYGAKCmBgYHtyLCBmaWcud2lkdGg9IDEyLCBmaWcuaGVpZ2h0ID0gNH0KZ3JhcGhpY3NbWzNdXVtbMV1dIC8gZ3JhcGhpY3NbWzNdXVtbMl1dICsgcGxvdF9sYXlvdXQoZ3VpZGVzID0gJ2NvbGxlY3QnKSAmIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIpCmBgYAoKYGBge3J9CmZhc3RhX2ZpbGVwYXRoIDwtIHN5c3RlbS5maWxlKCJleHRkYXRhIiwgIkhPSVAudHh0IiwgcGFja2FnZSA9ICJoZHhzdGF0cyIsIG11c3RXb3JrID0gVFJVRSkKcURGIDwtIGRhdGFfc2VsZWN0aW9uCmdyYXBoaWNzX3Byb3RlY3Rpb24gPC0gdmlzdWFsaXNlX2hkeF9kYXRhKHJlc3VsdHMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJwcm90ZWN0aW9uIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfc2VsZWN0aW9uPWRhdGFfc2VsZWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbD0icmVzaWR1ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhc3RhID0gZmFzdGFfZmlsZXBhdGgpCmBgYAoKYGBge3IsIGZpZy53aWR0aD0gMTIsIGZpZy5oZWlnaHQgPSA0fQpncmFwaGljcyA8LSBncmFwaGljc19wcm90ZWN0aW9uCmdyYXBoaWNzW1szXV1bWzFdXSAvIGdyYXBoaWNzW1szXV1bWzJdXSArCiAgICBwbG90X2xheW91dChndWlkZXMgPSAnY29sbGVjdCcpICYgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IikKYGBgCgpgYGB7cn0KcGRiX2ZpbGVwYXRoIDwtICJ2aWduZXR0ZXMvZGF0YS81ZWR2X2NoYWluQV9jbGVhbl9yZW51bWJlcmVkLnBkYiIKZ3JhcGhpY3MgPC0gbGlzdCgpCmZvciAoaSBpbiAxOihuX2NvbHMvMikpewogICAgZ3JhcGhpY3NfZGF0YSA8LSBoZHhfYXZlcmFnZSArIHNpZ24oaGR4X2RpZmZbW2ldXSRkaWZmTWFwKQogICAgbXljb2xvcl9wYXJhbWV0ZXJzIDwtIGhkeF90b19wZGJfY29sb3VycyhncmFwaGljc19kYXRhLCBwZGIgPSBwZGJfZmlsZXBhdGgsIGNtYXBfbmFtZSA9ICJQcm90RGVwcm90IikKICAgIGdyYXBoaWNzW1tpXV0gPC0gTkdMVmlld2VSKHBkYl9maWxlcGF0aCkgJT4lCiAgICAgIHN0YWdlUGFyYW1ldGVycyhiYWNrZ3JvdW5kQ29sb3IgPSAid2hpdGUiLCB6b29tU3BlZWQgPSAxKSAlPiUKICAgICAgYWRkUmVwcmVzZW50YXRpb24oImNhcnRvb24iKSAlPiUKICAgICAgYWRkUmVwcmVzZW50YXRpb24oImNhcnRvb24iLCBwYXJhbSA9IGxpc3QoY29sb3I9bXljb2xvcl9wYXJhbWV0ZXJzLCBiYWNrZ3JvdW5kQ29sb3I9IlByb3QiKSkKfQpgYGAKCmBgYHtyfQpncmFwaGljc1tbM11dCmBgYAoKYGBge3J9CnBkYl9maWxlcGF0aCA8LSAidmlnbmV0dGVzL2RhdGEvNWVkdl9jaGFpbkFfY2xlYW5fcmVudW1iZXJlZC5wZGIiCmdyYXBoaWNzX3BkYnZpZXcgPC0gdmlzdWFsaXNlX2hkeF9kYXRhKHJlc3VsdHMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX3NlbGVjdGlvbj1kYXRhX3NlbGVjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0icHJvdGVjdGlvbiIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbD0icmVzaWR1ZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXN0YT1mYXN0YV9maWxlcGF0aCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkYj1wZGJfZmlsZXBhdGgpCmBgYApgYGB7cn0KZ3JhcGhpY3NfcGRidmlld1tbM11dICMlPiUgc2V0U3BpbigpCmBgYAoKIyBURVNUIENBU0UgMwoKUHJlLXByb2Nlc3NlZCB0aGUgcmF3IGRhdGEgbWFudWFsbHkgdG8gYWRkIFJlcGxpY2F0ZSBjb2x1bW4KYGBge3J9CiNjc3ZfZmlsZXBhdGggPC0gImluc3QvZXh0ZGF0YS9Qcm9qZWN0XzJfU2VjQV9DbHVzdGVyX0RhdGEuY3N2IiAjIE9yaWdpbmFsIHJhdyBkYXRhCiNkYXRhIDwtIHJlYWRfY3N2KGNzdl9maWxlcGF0aCkKI2RhdGEkUmVwbGljYXRlIDwtIHVubGlzdChsYXBwbHkoc3Ryc3BsaXQoZGF0YSRGaWxlLCBzcGxpdD0iXyIpLCBmdW5jdGlvbih4KSB0YWlsKHgsIG49MSkpKQojd3JpdGVfY3N2KGRhdGEsIGZpbGUgPSAiaW5zdC9leHRkYXRhL1Byb2plY3RfMl9TZWNBX0NsdXN0ZXJfRGF0YV9lZGl0ZWQuY3N2IikKYGBgCgpDdXJhdGUgcmF3IGRhdGEgYWNjb3JkaW5nIHRvIHBhcmFtZXRlciBmaWxlIGFuZCBzYXZlIGFzIFFGZWF0dXJlcyBvYmplY3QKYGBge3J9CmNzdl9maWxlcGF0aCA8LSAiaW5zdC9leHRkYXRhL1Byb2plY3RfMl9TZWNBX0NsdXN0ZXJfRGF0YV9lZGl0ZWQuY3N2IgpoZHhfZGF0YSA8LSBleHRyYWN0X2hkeF9kYXRhKGNzdl9maWxlcGF0aCwgcGFyYW1ldGVyX2ZpbGUgPSAidmlnbmV0dGVzL2RhdGEvUHJvamVjdF8yX1NlY0FfQ2x1c3Rlcl9EYXRhLmhkeHAiKQpgYGAKUG9zdC1wcm9jZXNzIHRoZSBkYXRhLCByZW1vdmUgdW5kZXV0ZXJhdGVkIHZhbHVlcyBhbiBub3JtYWxpc2UgYnkgZXhjaGFuZ2FibGUgYW1pZGVzCmBgYHtyfQpoZHhfZGF0YV91bmRldXRlcmF0ZWQgPC0gbXlub3JtYWxpc2VoZHgoaGR4X2RhdGEsIG1ldGhvZCA9ICJ1bmRldXRlcmF0ZWQiKQpzZXF1ZW5jZXMgPC0gdW5pcXVlKHJvd25hbWVzKGhkeF9kYXRhX3VuZGV1dGVyYXRlZClbWzFdXSkKaGR4X2RhdGFfbm9ybWFsaXNlZCA8LSBteW5vcm1hbGlzZWhkeChoZHhfZGF0YV91bmRldXRlcmF0ZWQsIHNlcXVlbmNlcyA9IHNlcXVlbmNlcywgbWV0aG9kID0gInBjIikKYGBgCgpTZWxlY3QgZGF0YSBmb3IgY29uZGl0aW9ucyAoc3RhdGVzKSBvZiBpbnRlcmVzdDogYHNlY0FgIChBUE8gc3RhdGUpIGFuZCBgc2VjQV9BRFBgIChib3VuZCBzdGF0ZSkKYGBge3J9CmRhdGFfc2VsZWN0aW9uIDwtIGhkeF9kYXRhX25vcm1hbGlzZWRbLGMoMToxNywgNjM6NzkpXQpgYGAKCgoKYGBge3IsIGZpZy5oZWlnaHQgPSAxMiwgZmlnLndpZHRoID0gODAsIGZpZy5hbGlnbiA9ICJjZW50ZXIifQpwaGVhdG1hcCh0KGFzc2F5KGRhdGFfc2VsZWN0aW9uKSksCiAgICAgICAgIGNsdXN0ZXJfcm93cyA9IEZBTFNFLCAKICAgICAgICAgY2x1c3Rlcl9jb2xzID0gRkFMU0UsCiAgICAgICAgIGNvbG9yID0gYnJld2VyLnBhbChuID0gOSwgbmFtZSA9ICJCdVB1IiksCiAgICAgICAgIG1haW4gPSAic2VjQSBoZWF0bWFwIiwgCiAgICAgICAgIGZvbnRzaXplID0gMTQsCiAgICAgICAgIGxlZ2VuZF9icmVha3MgPSBjKDAsIDEsIDIsIDMsIDQsIDUsIDYsIG1heChhc3NheShkYXRhX3NlbGVjdGlvbikpKSwKICAgICAgICAgbGVnZW5kX2xhYmVscyA9IGMoIjAiLCAiMSIsICIyIiwgIjMiLCAiNCIsICI1IiwgIjYiLCAiSW5jb3Jwb3JhdGlvbiIpKQpgYGAKCmBgYHtyfQphbGxfcGVwdGlkZXMgPC0gcm93bmFtZXMoZGF0YV9zZWxlY3Rpb24pW1sxXV0gIyBnZXQgYWxsIHBlcHRpZGVzCnN0YXJ0aW5nX3BhcmFtZXRlcnMgPC0gbGlzdChhID0gTlVMTCwgYiA9IE5VTEwsICBkID0gTlVMTCwgcCA9IDEpCgpyZXN1bHRzIDwtIGFuYWx5c2Vfa2luZXRpY3MoZGF0YSA9IGRhdGFfc2VsZWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gImZpdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXB0aWRlX3NlbGVjdGlvbiA9IGFsbF9wZXB0aWRlcywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHN0YXJ0aW5nX3BhcmFtZXRlcnMpCmBgYApgYGB7cn0KcmVzdWx0cyRmdW5jdGlvbmFsX2FuYWx5c2lzQHJlc3VsdHMKYGBgCgpgYGB7cn0KZ3JhcGhpY3Nfa2luZXRpY3MgPC0gdmlzdWFsaXNlX2hkeF9kYXRhKHJlc3VsdHMsIHR5cGUgPSAia2luZXRpY3MiKQpncmFwaGljc19mb3Jlc3QgPC0gdmlzdWFsaXNlX2hkeF9kYXRhKHJlc3VsdHMsIHR5cGU9ImZvcmVzdCIpCmBgYApgYGB7ciwgZmlnLmhlaWdodCA9IDIsIGZpZy53aWR0aCA9IDEwLCBmaWcuYWxpZ24gPSAiY2VudGVyIn0KZ3JhcGhpY3Nfa2luZXRpY3NbWzRdXSArIGdyYXBoaWNzX2tpbmV0aWNzW1syNF1dICsgZ3JhcGhpY3Nfa2luZXRpY3NbWzI1XV0KYGBgCmBgYHtyfQpncmFwaGljc19tYW5oYXR0YW4gPC0gdmlzdWFsaXNlX2hkeF9kYXRhKHJlc3VsdHMsIGRhdGFfc2VsZWN0aW9uPSBkYXRhX3NlbGVjdGlvbiwgdHlwZT0ibWFuaGF0dGFuIikKYGBgCgoKCmBgYHtyfQojIEZpbmQgb3V0IGhvdyBtYW55IHVuaXF1ZSBwZXB0aWRlcyBhbmQgY2hhcmdlIHN0YXRlcyBleGlzdApsZW5ndGgocm93bmFtZXMoYXNzYXkoaGR4X2RhdGEpKSkKIyBFeHRyYWN0IGFsbCBjb2x1bW4gdmFsdWVzIGZvciBhIGdpdmVuIHBlcHRpZGUgYW5kIGNoYXJnZSBzdGF0ZSAoIGFsbCBzdGF0ZXMsIGFsbCByZXBsaWNhdGVzLCBhbGwgdGltZXBvaW50cykKcGVwdGlkZV9jaGFyZ2UgPC0gIlZJTURGXzEiICMgIlNTUVlFU0FMXzEiCkRldV9taW5fZ2xvYmFsIDwtIGFwcGx5KGFzc2F5KGhkeF9kYXRhKSwgMSwgZnVuY3Rpb24oeCkgbWluKHgsIG5hLnJtID0gVFJVRSkpW1twZXB0aWRlX2NoYXJnZV1dCnBlcHRpZGVfY2hhcmdlX2RhdGEgPC0gYXMuZGF0YS5mcmFtZShhc3NheShoZHhfZGF0YSkpW3BlcHRpZGVfY2hhcmdlLCBdCnBlcHRpZGVfY2hhcmdlX2RhdGEgPC0gbG9uZ0Zvcm1hdChwZXB0aWRlX2NoYXJnZV9kYXRhKQpwZXB0aWRlX2NoYXJnZV9kYXRhJGNvbmRpdGlvbiA8LSBhcy5mYWN0b3Ioc3RyX21hdGNoKHBlcHRpZGVfY2hhcmdlX2RhdGEkY29sbmFtZSwgImNvbmRcXHMqKC4qKSIpWywgMl0pICMgTW9kaWZ5IHRoaXMgZm9yIGRhdGEgYW5hbHlzaXMgZnVuY3Rpb25zIHNpbmNlIHRoZXkgZXhwZWN0IGEgbnVtZXJpYyBmb3IgcmVwbGljYXRlcwpwZXB0aWRlX2NoYXJnZV9jb25kaXRpb25zIDwtIHVuaXF1ZShwZXB0aWRlX2NoYXJnZV9kYXRhJGNvbmRpdGlvbikKIyBGb3IgYSBmaXhlZCBjb25maXRpb24Kc3RhdGUgPC0gIlNlY0FZRUdfQU1QUE5QIgpsZGYgPC0gcGVwdGlkZV9jaGFyZ2VfZGF0YSAlPiUgc3Vic2V0KGNvbmRpdGlvbiA9PSBzdGF0ZSkKbGRmJHRpbWVwb2ludCA8LSBhcy5udW1lcmljKHN0cl9tYXRjaChsZGYkY29sbmFtZSwgIlhcXHMqKC4qPylcXHMqcmVwIilbLCAyXSkKbGRmJHJlcGxpY2F0ZXMgPC0gYXMuZmFjdG9yKHN0cl9tYXRjaChsZGYkY29sbmFtZSwgInJlcFxccyooLiopXFxzKmNvbmQiKVssIDJdKQojIElkZW50aWZ5IGlmIG51bWJlciBvZiByZXBsaWNhdGVzIGZvciAwIHRpbWVwb2ludCBtYXRjaCBmb3Igc3Vic2VxdWVudCB0aW1lcG9pbnRzIGFuZCByZXBvcnQgaWYgbm90IHRoZSBjYXNlCiNzdW0obGRmJHRpbWVwb2ludCA9PSAwKQojbGVuZ3RoKHVuaXF1ZShsZGYkdGltZXBvaW50KSkKbGRmJHJlcGxpY2F0ZXMgPC0gdW5saXN0KGxhcHBseShzdHJzcGxpdChhcy52ZWN0b3IoYXMuZmFjdG9yKHN0cl9tYXRjaChsZGYkY29sbmFtZSwgInJlcFxccyooLiopXFxzKmNvbmQiKVssIDJdKSksIHNwbGl0PSJfIiksIGZ1bmN0aW9uKHgpIHRhaWwoeCwgbj0xKSkpCgojIFN1YnRyYWN0IERldSB1cHRha2UgdmFsdWUgYXQgMCB0aW1lcG9pbnQKcmVwbGljYXRlX251bWJlciA8LSAzCnNpbmdsZV9yZXBsaWNhdGVfZGF0YSA8LSBsZGYgJT4lIHN1YnNldChyZXBsaWNhdGVzID09IHJlcGxpY2F0ZV9udW1iZXIpCnggPC0gc2luZ2xlX3JlcGxpY2F0ZV9kYXRhICU+JSBzdWJzZXQodGltZXBvaW50ID09IDApICMgTk9URTogU29tZXRpbWVzIHRoZXJlIHdpbGwgYmUgbW9yZSB0aGFuIG9uZSAwIHRpbWVwb2ludAptZXNzYWdlIDwtIHBhc3RlKCJJTkZPOiBZb3UgaGF2ZSIsIGxlbmd0aCh4JHZhbHVlKSwiRGV1IHVwdGFrZSB2YWx1ZXMgZm9yIHRoZSB6ZXJvIHRpbWVwb2ludC4iKQpwcmludChtZXNzYWdlKQoKaWYgKGFsbChpcy5uYSh4JHZhbHVlKSkpewogICAgbWVzc2FnZSA8LSAiSU5GTzogQWxsIERldSB1cHRha2UgdmFsdWVzIGZvciB0aGUgemVybyB0aW1lcG9pbnQgYXJlIE5BLiBJIHdpbGwgdGFrZSB0aGUgbWluaW11bSBhY3Jvc3MgYWxsIGNvbmRpdGlvbnMuIgogICAgcHJpbnQobWVzc2FnZSkKICAgIHNpbmdsZV9yZXBsaWNhdGVfZGF0YSR2YWx1ZSA8LSBzaW5nbGVfcmVwbGljYXRlX2RhdGEkdmFsdWUgLSBEZXVfbWluX2dsb2JhbAogICAgcHJpbnQoc2luZ2xlX3JlcGxpY2F0ZV9kYXRhKQp9ZWxzZXsKICAgIG1lc3NhZ2UgPC0gIklORk86IEF0IGxlYXN0IG9uZSBEZXUgdXB0YWtlIHZhbHVlcyBmb3IgdGhlIHplcm8gdGltZXBvaW50IGlzIE5BLiBJIHdpbGwgdGFrZSB0aGUgbWluaW11bSBvZiBhbGwgemVybyB0aW1lcG9pbnRzIgogICAgcHJpbnQobWVzc2FnZSkKICAgIERldV9taW4gPC0gbWluKHgkdmFsdWUsIG5hLnJtID0gVFJVRSkKICAgIHByaW50KCJCRUZPUkUiKQogICAgcHJpbnQoc2luZ2xlX3JlcGxpY2F0ZV9kYXRhKQogICAgc2luZ2xlX3JlcGxpY2F0ZV9kYXRhJHZhbHVlIDwtIHNpbmdsZV9yZXBsaWNhdGVfZGF0YSR2YWx1ZSAtIERldV9taW4KICAgIHByaW50KCJBRlRFUiIpCiAgICBwcmludChzaW5nbGVfcmVwbGljYXRlX2RhdGEpCn0KYGBgCgoKYGBge3J9Cm1lc3NhZ2UgPC1wYXN0ZSgiSU5GTzogWW91IGhhdmUiLCBsZW5ndGgocm93bmFtZXMoYXNzYXkoaGR4X2RhdGEpKSksICJwZXB0aWRlLWNoYXJnZSBwYWlyZWQgdmFsdWVzIikKcHJpbnQobWVzc2FnZSkKbGRmX25ldyA8LSByYmluZCgpCmZvciAocGVwdGlkZV9jaGFyZ2UgaW4gcm93bmFtZXMoYXNzYXkoaGR4X2RhdGEpKSl7CiAgcGVwdGlkZV9jaGFyZ2VfZGF0YSA8LSBhcy5kYXRhLmZyYW1lKGFzc2F5KGhkeF9kYXRhKSlbcGVwdGlkZV9jaGFyZ2UsIF0KICBwZXB0aWRlX2NoYXJnZV9kYXRhIDwtIGxvbmdGb3JtYXQocGVwdGlkZV9jaGFyZ2VfZGF0YSkKICBwZXB0aWRlX2NoYXJnZV9kYXRhJGNvbmRpdGlvbiA8LSBhcy5mYWN0b3Ioc3RyX21hdGNoKHBlcHRpZGVfY2hhcmdlX2RhdGEkY29sbmFtZSwgImNvbmRcXHMqKC4qKSIpWywgMl0pCiAgCiAgRGV1X21pbl9nbG9iYWwgPC0gYXBwbHkoYXNzYXkoaGR4X2RhdGEpLCAxLCBmdW5jdGlvbih4KSBtaW4oeCwgbmEucm0gPSBUUlVFKSlbW3BlcHRpZGVfY2hhcmdlXV0KICAKICBwZXB0aWRlX2NoYXJnZV9jb25kaXRpb25zIDwtIHVuaXF1ZShwZXB0aWRlX2NoYXJnZV9kYXRhJGNvbmRpdGlvbikKICBtZXNzYWdlIDwtIHBhc3RlKCJJTkZPOiBGb3IgIiwgcGVwdGlkZV9jaGFyZ2UsICIsIHlvdSBoYXZlIiwgbGVuZ3RoKHBlcHRpZGVfY2hhcmdlX2NvbmRpdGlvbnMpLCAiY29uZGl0aW9ucyIpCiAgcHJpbnQobWVzc2FnZSkKICAKICAjbGRmX25ldyA8LSByYmluZCgpCiAgZm9yIChzdGF0ZSBpbiBwZXB0aWRlX2NoYXJnZV9jb25kaXRpb25zKXsKICAgIGxkZiA8LSBwZXB0aWRlX2NoYXJnZV9kYXRhICU+JSBzdWJzZXQoY29uZGl0aW9uID09IHN0YXRlKQogICAgbGRmJHRpbWVwb2ludCA8LSBhcy5udW1lcmljKHN0cl9tYXRjaChsZGYkY29sbmFtZSwgIlhcXHMqKC4qPylcXHMqcmVwIilbLCAyXSkKICAgIGxkZiRyZXBsaWNhdGVzIDwtIGFzLmZhY3RvcihzdHJfbWF0Y2gobGRmJGNvbG5hbWUsICJyZXBcXHMqKC4qKVxccypjb25kIilbLCAyXSkKICAgIAogICAgbGRmJHJlcGxpY2F0ZXMgPC0gdW5saXN0KGxhcHBseShzdHJzcGxpdChhcy52ZWN0b3IoYXMuZmFjdG9yKHN0cl9tYXRjaChsZGYkY29sbmFtZSwgInJlcFxccyooLiopXFxzKmNvbmQiKVssIDJdKSksIHNwbGl0PSJfIiksIGZ1bmN0aW9uKHgpIHRhaWwoeCwgbj0xKSkpCiAgICAjIFN1YnRyYWN0IERldSB1cHRha2UgdmFsdWUgYXQgMCB0aW1lcG9pbnQKICAgIG1lc3NhZ2UgPC0gcGFzdGUoIklORk86IFlvdSBoYXZlIiwgbGVuZ3RoKHVuaXF1ZShsZGYkcmVwbGljYXRlcykpLCAicmVwbGljYXRlcywgZm9yIiwgc3RhdGUpCiAgICBwcmludChtZXNzYWdlKQogICAgCiAgICBmb3IgKG5fcmVwbGljYXRlIGluIHVuaXF1ZShsZGYkcmVwbGljYXRlcykpewogICAgICBzaW5nbGVfcmVwbGljYXRlX2RhdGEgPC0gbGRmICU+JSBzdWJzZXQocmVwbGljYXRlcyA9PSBuX3JlcGxpY2F0ZSkKICAgICAgeCA8LSBzaW5nbGVfcmVwbGljYXRlX2RhdGEgJT4lIHN1YnNldCh0aW1lcG9pbnQgPT0gMCkKICAgICAgCiAgICAgIGlmIChhbGwoaXMubmEoeCR2YWx1ZSkpKXsKICAgICAgICBtZXNzYWdlIDwtICJJTkZPOiBBbGwgRGV1IHVwdGFrZSB2YWx1ZXMgZm9yIHRoZSB6ZXJvIHRpbWVwb2ludCBhcmUgTkEuIEkgd2lsbCB0YWtlIHRoZSBtaW5pbXVtIGFjcm9zcyBhbGwgY29uZGl0aW9ucy4iCiAgICAgICAgcHJpbnQobWVzc2FnZSkKICAgICAgICBzaW5nbGVfcmVwbGljYXRlX2RhdGEkdmFsdWUgPC0gc2luZ2xlX3JlcGxpY2F0ZV9kYXRhJHZhbHVlIC0gRGV1X21pbl9nbG9iYWwKICAgICAgICAjcHJpbnQoc2luZ2xlX3JlcGxpY2F0ZV9kYXRhKQogICAgICAgIGxkZl9uZXcgPC0gcmJpbmQobGRmX25ldywgc2luZ2xlX3JlcGxpY2F0ZV9kYXRhKQogICAgICAgIH1lbHNlewogICAgICAgICAgICBtZXNzYWdlIDwtICJJTkZPOiBBdCBsZWFzdCBvbmUgRGV1IHVwdGFrZSB2YWx1ZXMgZm9yIHRoZSB6ZXJvIHRpbWVwb2ludCBpcyBOQS4gSSB3aWxsIHRha2UgdGhlIG1pbmltdW0gb2YgYWxsIHplcm8gdGltZXBvaW50cyIKICAgICAgICAgICAgcHJpbnQobWVzc2FnZSkKICAgICAgICAgICAgRGV1X21pbiA8LSBtaW4oeCR2YWx1ZSwgbmEucm0gPSBUUlVFKQogICAgICAgICAgICBzaW5nbGVfcmVwbGljYXRlX2RhdGEkdmFsdWUgPC0gc2luZ2xlX3JlcGxpY2F0ZV9kYXRhJHZhbHVlIC0gRGV1X21pbgogICAgICAgICAgICAjcHJpbnQoc2luZ2xlX3JlcGxpY2F0ZV9kYXRhKQogICAgICAgICAgICBsZGZfbmV3IDwtIHJiaW5kKGxkZl9uZXcsIHNpbmdsZV9yZXBsaWNhdGVfZGF0YSkKICAgICAgICB9CiAgICB9CiAgfQp9Cgp4IDwtIERhdGFGcmFtZShsZGZfbmV3KQp4X3dpZGUgPC0gcGl2b3Rfd2lkZXIoZGF0YS5mcmFtZSh4KSwgdmFsdWVzX2Zyb20gPSB2YWx1ZSwgaWRfY29scyA9IHJvd25hbWUsIG5hbWVzX2Zyb20gPSBjb2xuYW1lKQp4X3dpZGVfZGYgPC0gRGF0YUZyYW1lKHhfd2lkZSkKeF93aWRlX2RmJHJvd25hbWVzIDwtIHhfd2lkZSRyb3duYW1lCnFGZWF0IDwtIHJlYWRRRmVhdHVyZXMoZGF0YS5mcmFtZSh4X3dpZGVfZGYpLCBlY29sID0gMTpuY29sKGFzc2F5KGhkeF9kYXRhKSksIG5hbWUgPSBuYW1lcyhoZHhfZGF0YSksIGZuYW1lcyA9ICJyb3duYW1lcyIpCmBgYAo=